cn.webfuse.core.constant.RegexConstants Maven / Gradle / Ivy
package cn.webfuse.core.constant;
/**
* 正则的常量
*
* 手机号码正则参考:https://github.com/VincentSit/ChinaMobilePhoneNumberRegex/blob/master/README-CN.md
*/
public class RegexConstants {
/**
* 正则:手机号(简单), 1字头+10位数字即可.
*/
private static final String REGEX_MOBILE_SIMPLE = "^[1]\\d{10}$";
/**
* 正则:匹配所有号码(手机卡 + 数据卡 + 上网卡)
*/
public static final String REGEX_MOBILE_ALL = "^(?:\\+?86)?1(?:3\\d{3}|5[^4\\D]\\d{2}|8\\d{3}|7(?:[01356789]\\d{2}|4(?:0\\d|1[0-2]|9\\d))|9[189]\\d{2}|6[567]\\d{2}|4(?:[14]0\\d{3}|[68]\\d{4}|[579]\\d{2}))\\d{6}$";
/**
* 正则:匹配所有支持短信功能的号码(手机卡 + 上网卡)
*/
public static final String REGEX_MOBILE_SMS = "^(?:\\+?86)?1(?:3\\d{3}|5[^4\\D]\\d{2}|8\\d{3}|7(?:[01356789]\\d{2}|4(?:0\\d|1[0-2]|9\\d))|9[189]\\d{2}|6[567]\\d{2}|4[579]\\d{2})\\d{6}$";
/**
* 正则:固定电话号码,可带区号,然后6至少8位数字
*/
private static final String REGEX_TEL = "^(\\d{3,4}-)?\\d{6,8}$";
/**
* 正则:身份证号码15位, 数字且关于生日的部分必须正确
*/
private static final String REGEX_ID_CARD15 = "^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$";
/**
* 正则:身份证号码18位, 数字且关于生日的部分必须正确
*/
private static final String REGEX_ID_CARD18 = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9Xx])$";
/**
* 正则:邮箱, 有效字符(不支持中文), 且中间必须有@,后半部分必须有.
*/
private static final String REGEX_EMAIL = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
/**
* 正则:URL, 必须有"://",前面必须是英文,后面不能有空格
*/
private static final String REGEX_URL = "[a-zA-z]+://[^\\s]*";
/**
* 正则:yyyy-MM-dd格式的日期校验,已考虑平闰年
*/
private static final String REGEX_DATE = "^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$";
/**
* 正则:IP地址
*/
private static final String REGEX_IP = "((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)";
/**
* 正则:匹配中文字符
*/
public static final String REGEX_ZH = "^[\\u4e00-\\u9fa5]+$";
/**
* 正则:匹配双字节字符(包括汉字在内)
*/
public static final String REGEX_DOUBLE_BYTE_CHAR = "[^\\x00-\\xff]";
/**
* 正则:匹配空白行
*/
public static final String REGEX_BLANK_LINE = "\\n\\s*\\r";
/**
* 正则:匹配QQ号
*/
public static final String REGEX_QQ_NUM = "[1-9][0-9]{4,}";
/**
* 正则:匹配中国邮政编码
*/
public static final String REGEX_CHINA_POSTAL_CODE = "[1-9]\\d{5}(?!\\d)";
/**
* 正则:匹配正整数
*/
public static final String REGEX_POSITIVE_INTEGER = "^[1-9]\\d*$";
/**
* 正则:匹配负整数
*/
public static final String REGEX_NEGATIVE_INTEGER = "^-[1-9]\\d*$";
/**
* 正则:匹配整数
*/
public static final String REGEX_INTEGER = "^-?[1-9]\\d*$";
/**
* 正则:匹配非负整数(正整数+0)
*/
public static final String REGEX_NOT_NEGATIVE_INTEGER = "^[1-9]\\d*|0$";
/**
* 正则:匹配非正整数(负整数+0)
*/
public static final String REGEX_NOT_POSITIVE_INTEGER = "^-[1-9]\\d*|0$";
/**
* 正则:匹配正浮点数
*/
public static final String REGEX_POSITIVE_FLOAT = "^[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$";
/**
* 正则:匹配负浮点数
*/
public static final String REGEX_NEGATIVE_FLOAT = "^-[1-9]\\d*\\.\\d*|-0\\.\\d*[1-9]\\d*$";
/**
* 正则:匹配时间(时:分:秒)
*/
public static final String REGEX_TIME = "([01]?\\d|2[0-3]):[0-5]?\\d:[0-5]?\\d";
//=========================================================================================================
/**
* Regex of username.
* scope for "a-z", "A-Z", "0-9", "_", "Chinese character"
* can't end with "_"
* length is between 6 to 20
*/
public static final String REGEX_USERNAME = "^[\\w\\u4e00-\\u9fa5]{6,20}(?