11# 正则相关
22``` java
3- import android.text.TextUtils ;
3+ package com.blankj.utilcode.utils ;
44
55import java.util.regex.Pattern ;
66
7+ import static com.blankj.utilcode.utils.ConstUtils.* ;
8+
79/**
810 * <pre >
911 * author: Blankj
@@ -19,109 +21,129 @@ public class RegularUtils {
1921 }
2022
2123 /**
22- * 验证手机号(简单)
23- */
24- private static final String REGEX_MOBILE_SIMPLE = " ^[1]\\ d{10}$" ;
25- /**
26- * 验证手机号(精确)
27- * <p />
28- * <p >移动:134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188
29- * <p >联通:130、131、132、145、155、156、175、176、185、186
30- * <p >电信:133、153、173、177、180、181、189
31- * <p >全球星:1349
32- * <p >虚拟运营商:170
33- */
34- private static final String REGEX_MOBILE_EXACT = " ^((13[0-9])|(14[5,7])|(15[0-3,5-8])|(17[0,3,5-8])|(18[0-9])|(147))\\ d{8}$" ;
35- /**
36- * 验证座机号,正确格式:xxx/xxxx-xxxxxxx/xxxxxxxx/
37- */
38- private static final String REGEX_TEL = " ^0\\ d{2,3}[- ]?\\ d{7,8}" ;
39- /**
40- * 验证邮箱
41- */
42- private static final String REGEX_EMAIL = " ^\\ w+([-+.]\\ w+)*@\\ w+([-.]\\ w+)*\\ .\\ w+([-.]\\ w+)*$" ;
43- /**
44- * 验证url
24+ * If u want more please visit http://toutiao.com/i6231678548520731137/
4525 */
46- private static final String REGEX_URL = " http(s)?://([\\ w-]+\\ .)+[\\ w-]+(/[\\ w-./?%&=]*)?" ;
47- /**
48- * 验证汉字
49- */
50- private static final String REGEX_CHZ = " ^[\\ u4e00-\\ u9fa5]+$" ;
51- /**
52- * 验证用户名,取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾,用户名必须是6-20位
53- */
54- private static final String REGEX_USERNAME = " ^[\\ w\\ u4e00-\\ u9fa5]{6,20}(?<!_)$" ;
55- /**
56- * 验证IP地址
57- */
58- 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?)" ;
59-
60- // If u want more please visit http://toutiao.com/i6231678548520731137/
6126
6227 /**
28+ * 验证手机号(简单)
29+ *
6330 * @param string 待验证文本
64- * @return 是否符合手机号(简单)格式
31+ * @return true: 匹配< br >false: 不匹配
6532 */
6633 public static boolean isMobileSimple (String string ) {
6734 return isMatch(REGEX_MOBILE_SIMPLE , string);
6835 }
6936
7037 /**
38+ * 验证手机号(精确)
39+ *
7140 * @param string 待验证文本
72- * @return 是否符合手机号(精确)格式
41+ * @return true: 匹配< br >false: 不匹配
7342 */
7443 public static boolean isMobileExact (String string ) {
7544 return isMatch(REGEX_MOBILE_EXACT , string);
7645 }
7746
7847 /**
48+ * 验证电话号码
49+ *
7950 * @param string 待验证文本
80- * @return 是否符合座机号码格式
51+ * @return true: 匹配< br >false: 不匹配
8152 */
8253 public static boolean isTel (String string ) {
8354 return isMatch(REGEX_TEL , string);
8455 }
8556
8657 /**
58+ * 验证身份证号码15位
59+ *
8760 * @param string 待验证文本
88- * @return 是否符合邮箱格式
61+ * @return true: 匹配<br >false: 不匹配
62+ */
63+ public static boolean isIDCard15 (String string ) {
64+ return isMatch(REGEX_IDCARD15 , string);
65+ }
66+
67+ /**
68+ * 验证身份证号码18位
69+ *
70+ * @param string 待验证文本
71+ * @return true: 匹配<br >false: 不匹配
72+ */
73+ public static boolean isIDCard18 (String string ) {
74+ return isMatch(REGEX_IDCARD18 , string);
75+ }
76+
77+ /**
78+ * 验证邮箱
79+ *
80+ * @param string 待验证文本
81+ * @return true: 匹配<br >false: 不匹配
8982 */
9083 public static boolean isEmail (String string ) {
9184 return isMatch(REGEX_EMAIL , string);
9285 }
9386
9487 /**
88+ * 验证URL
89+ *
9590 * @param string 待验证文本
96- * @return 是否符合网址格式
91+ * @return true: 匹配< br >false: 不匹配
9792 */
9893 public static boolean isURL (String string ) {
9994 return isMatch(REGEX_URL , string);
10095 }
10196
10297 /**
98+ * 验证汉字
99+ *
103100 * @param string 待验证文本
104- * @return 是否符合汉字
101+ * @return true: 匹配< br >false: 不匹配
105102 */
106103 public static boolean isChz (String string ) {
107104 return isMatch(REGEX_CHZ , string);
108105 }
109106
110107 /**
108+ * 验证用户名
109+ * <p >取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾,用户名必须是6-20位</p>
110+ *
111111 * @param string 待验证文本
112- * @return 是否符合用户名
112+ * @return true: 匹配< br >false: 不匹配
113113 */
114114 public static boolean isUsername (String string ) {
115115 return isMatch(REGEX_USERNAME , string);
116116 }
117117
118118 /**
119+ * 验证yyyy-MM-dd格式的日期校验,已考虑平闰年
120+ *
121+ * @param string 待验证文本
122+ * @return true: 匹配<br >false: 不匹配
123+ */
124+ public static boolean isDate (String string ) {
125+ return isMatch(REGEX_DATE , string);
126+ }
127+
128+ /**
129+ * 验证IP地址
130+ *
131+ * @param string 待验证文本
132+ * @return true: 匹配<br >false: 不匹配
133+ */
134+ public static boolean isIP (String string ) {
135+ return isMatch(REGEX_IP , string);
136+ }
137+
138+ /**
139+ * string是否匹配regex
140+ *
119141 * @param regex 正则表达式字符串
120142 * @param string 要匹配的字符串
121- * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
143+ * @return true: 匹配< br > false: 不匹配
122144 */
123145 public static boolean isMatch (String regex , String string ) {
124- return ! TextUtils . isEmpty(string) && Pattern . matches(regex, string);
146+ return ! StringUtils . isEmpty(string) && Pattern . matches(regex, string);
125147 }
126148}
127149```
0 commit comments