版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/jadyer/article/details/27811103

完整版见https://jadyer.github.io/

package com.jadyer.server.util;

import java.util.regex.Pattern;

/**
* 正则工具类
* @see final class能够提高执行速度,原因例如以下
* @see 1)不涉及继承和覆盖
* @see 2)其地址引用和装载在编译时完毕,而不是在执行期间由JVM进行复杂的装载,因而简单并有效
* @see 3)执行时不要求JVM执行因覆盖而产生的动态地址引用而花费时间和空间
* @see 4)与继承链上的一般对象相比,垃圾回收器在收回final对象所占领的地址空间时也相对简单快捷
* @version v1.0
* @history v1.0-->新建此工具类
* @create Dec 16, 2013 1:04:09 PM
* @author 玄玉<http://blog.csdn.net/jadyer>
*/
public final class RegexUtil {
private RegexUtil(){} /**
* 验证Email
*/
public static boolean isEmail(String email){
return Pattern.matches("\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?", email);
} /**
* 验证身份证号
* @see 身份证号码为15位或18位,且首位不能为0,尾位能够是字母或数字
*/
public static boolean isIdCard(String idCard){
return Pattern.matches("[1-9]\\d{13,16}[a-zA-Z0-9]{1}", idCard);
} /**
* 验证手机号码
* @see 移动的号段:134,135,136,137,138,139,147,150,151,152,157,158,159,182,187,188
* @see 联通的号段:130,131,132,145,155,156,185,186
* @see 电信的号段:133,153,180,189
* @param mobile 移动联通电信三大运营商的号码段,支持国际格式,如+86135xxxxxxxx(中国内地),+00852137xxxxxxxx(中国香港)
*/
public static boolean isMobile(String mobile){
//return Pattern.matches("^(13[0,1,2]|145|15[5,6]|18[5,6])\\d{8}$", mobile);
return Pattern.matches("(\\+\\d+)?1[3458]\\d{9}$", mobile);
} /**
* 验证固定电话号码
* @see 国家(地区)代码:标识电话号码的国家(地区)的标准国家(地区)代码,它包括从0到9的一位或多位数字
* @see 区号(城市代码):这可能包括一个或多个从0到9的数字,地区或城市代码放在圆括号标明对不使用地区或城市代码的国家(地区)则省略该组件
* @see 电话号码:包括从0到9的七位或八位数字
* @param phone 座机号,格式为:国家(地区)代码+区号(城市代码)+电话号码,如:+8602085588447
*/
public static boolean isPhone(String phone){
return Pattern.matches("(\\+\\d+)?(\\d{3,4}\\-?)? \\d{7,8}$", phone);
} /**
* 验证中文
*/
public static boolean isChinese(String chinese){
return Pattern.matches("^[\u4E00-\u9FA5]+$", chinese);
} /**
* 验证中国邮政编码
*/
public static boolean isPostCode(String postCode){
return Pattern.matches("[1-9]\\d{5}", postCode);
} /**
* 验证IP地址
* @see 这里并未匹配IP段的大小
* @param ipAddress IPv4标准地址
*/
public static boolean isIPAddress(String ipAddress){
return Pattern.matches("[1-9](\\d{1,2})?\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})?))\\.(0|([1-9](\\d{1,2})? ))", ipAddress);
} /**
* 验证URL地址
*/
public static boolean isURL(String url){
return Pattern.matches("(https?://(w{3}\\.)?)?\\w+\\.\\w+(\\.[a-zA-Z]+)*(:\\d{1,5})?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?", url);
}
}

正则工具类以及FinalClass的更多相关文章

  1. Android常用正则工具类

    此类提供日常开发中常用的正则验证函数,比如:邮箱.手机号.电话号码.身份证号码.日期.数字.小数.URL.IP地址等.使用Pattern对象的matches方法进行整个字符匹配,调用该方法相当于:   ...

  2. android经常使用正则工具类

    此类提供日常开发中经常使用的正则验证函数.比方:邮箱.手机号.电话号码.身份证号码.日期.数字.小数.URL.IP地址等.使用Pattern对象的matches方法进行整个字符匹配,调用该方法相当于: ...

  3. C#常用的正则工具类写法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. 正则工具类 -- RegexUtils

    import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util. ...

  5. Java学习-049-正则工具类

    自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...

  6. [Swift]正则表达式工具类

    正则表达式工具类 import Foundation //基于NSRegularExpression api 的正则处理工具类 public struct Regex { private let re ...

  7. (转载)详解7.0带来的新工具类:DiffUtil

    [Android]详解7.0带来的新工具类:DiffUtil 标签: diffutil 2017-04-17 18:21 226人阅读 评论(0) 收藏 举报  分类: Android学习笔记(94) ...

  8. java常用正则校验工具类

    正则常用校验工具类 import java.util.regex.Pattern; /** * @program: * @description: 校验工具类 * @author: xujingyan ...

  9. JAVA工具类--手机号生成与正则校验

    package utils; import java.util.Random; import java.util.regex.Pattern; /** * Created with IntelliJ ...

随机推荐

  1. 【Luogu】P2762太空飞行计划(最大权闭合图)

    题目链接 woc这题目的输入格式和输出格式真的恶心 首先我们就着样例讲一下闭合图 如图所示,第一层是两个实验节点,带来正收益:第二层是三个仪器节点,带来负收益:问讲道理到终点可以获得多大收益. 闭合图 ...

  2. 【Luogu】P1681最大正方形2(异或运算,DP)

    题目链接 不得不说attack是个天才.读入使用异或运算,令que[i][j]^=(i^j)&1,于是原题目变成了求que数组的最大相同值. 然而我还是不理解为啥,而且就算简化成这样我也不会做 ...

  3. TeraTerm下载

    参考:http://blog.csdn.net/gxp/article/details/9169319 官方主页: http://ttssh2.sourceforge.jp/ 官方下载: http:/ ...

  4. TeraTerm设定(窗体大小,字体字号)保存为默认值

    Tera Term是一款很好的SSH工具,大家经常遇到一个头疼的问题,每次打开的时候,都要自己重新设置一遍Font. 介绍一下把自己喜欢的字体,设置好后,保存到默认配置中的方法. 设置窗体大小: 设置 ...

  5. 【树状数组区间修改单点查询+分组】HDU 4267 A Simple Problem with Integers

    http://acm.hdu.edu.cn/showproblem.php?pid=4267 [思路] 树状数组的区间修改:在区间[a, b]内更新+x就在a的位置+x. 然后在b+1的位置-x 树状 ...

  6. spring和mybatis整合配置文件

    查看所有springmvc  spring  mybatis配置文件见下链接: https://my.oschina.net/sherwayne/blog/262616 <?xml versio ...

  7. 创建微服务项目后,在谷歌、Safari等浏览器下无法访问的具体原因

    使用SpringBoot开发了一个项目,端口随机给指定了一个,如6666. 可是奇葩的现象出现了,当在谷歌浏览器地址栏中输入localhost:6666访问的时候,提示无法访问. 检查良久,发现代码也 ...

  8. SGU112

    题意:求a^b-b^a次,100以内.大数的-和*的模拟,用的模板,注意该模板中间和结果都不能出现负数. #include<iostream> #include<string> ...

  9. hdu1251 字典树trie 模板题

    //字典树模板题.题意:给一个库,每次查询,求以之为前缀的单词数量. #include<iostream> #include<string> #include<vecto ...

  10. CentOS6.5升级手动安装GCC4.8.2 与 CentOS 6.4 编译安装 gcc 4.8.1

    http://blog.163.com/zhu329599788@126/blog/static/6669335020161179259975 http://www.cnblogs.com/codem ...