正则工具类以及FinalClass
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/jadyer/article/details/27811103
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的更多相关文章
- Android常用正则工具类
此类提供日常开发中常用的正则验证函数,比如:邮箱.手机号.电话号码.身份证号码.日期.数字.小数.URL.IP地址等.使用Pattern对象的matches方法进行整个字符匹配,调用该方法相当于: ...
- android经常使用正则工具类
此类提供日常开发中经常使用的正则验证函数.比方:邮箱.手机号.电话号码.身份证号码.日期.数字.小数.URL.IP地址等.使用Pattern对象的matches方法进行整个字符匹配,调用该方法相当于: ...
- C#常用的正则工具类写法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 正则工具类 -- RegexUtils
import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util. ...
- Java学习-049-正则工具类
自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...
- [Swift]正则表达式工具类
正则表达式工具类 import Foundation //基于NSRegularExpression api 的正则处理工具类 public struct Regex { private let re ...
- (转载)详解7.0带来的新工具类:DiffUtil
[Android]详解7.0带来的新工具类:DiffUtil 标签: diffutil 2017-04-17 18:21 226人阅读 评论(0) 收藏 举报 分类: Android学习笔记(94) ...
- java常用正则校验工具类
正则常用校验工具类 import java.util.regex.Pattern; /** * @program: * @description: 校验工具类 * @author: xujingyan ...
- JAVA工具类--手机号生成与正则校验
package utils; import java.util.Random; import java.util.regex.Pattern; /** * Created with IntelliJ ...
随机推荐
- 【bzoj2989】数列 KD-tree+旋转坐标系
题目描述 给定一个长度为n的正整数数列a[i]. 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)=|x-y|+|a[x]-a[y]|. 2种操作(k都是正整数): 1.Mo ...
- POJ——2251Dungeon Master(三维BFS)
Dungeon Master Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 25379 Accepted: 9856 D ...
- 【前端学习笔记】2015-09-11~~~~ js中ajax请求返回案例
<body><textarea id='a' rows=100 cols=300>result:</textarea>><script>var a ...
- 线程池的使用。好文。mark【http://blog.csdn.net/rwecho/article/details/21157289】
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端执行一个异步任务你还只是如下new T ...
- 维修队列(bzoj 1500)
Description Input 输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目.第2行包含N个数字,描述初始时的数列.以下M行,每行一 ...
- @Validated注解
参考: https://blog.csdn.net/changerzhuo_319/article/details/55804651
- [TJOI2019]唱、跳、rap和篮球_生成函数_容斥原理_ntt
[TJOI2019]唱.跳.rap和篮球 这么多人过没人写题解啊 那我就随便说说了嗷 这题第一步挺套路的,就是题目要求不能存在balabala的时候考虑正难则反,要求必须存在的方案数然后用总数减,往往 ...
- codevs——1297 硬币
1297 硬币 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 我们知道即使是同一种面值的硬币,它们的重量也 ...
- Java对象的死亡
在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象). 一,引用计数算法 给 ...
- OC - 读歌词
类的头文件: #import <Foundation/Foundation.h> //FILE_PATH是文件名称. #define FILE_PATH @"/Users/qia ...