chenjiahe
2021-10-14 f526920f5151292b55be408c4b59f7e4a2129f12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
package com.hx.util;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
/**
 * 正则表达式验证工�?
 * @author mgchen
 *
 */
public class RegValidatorUtil {
    
    /**
    * 验证邮箱
    * 
    * @param str 待验证的字符
    * @return 如果是符合的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean isEmail(String str) {
        String regex = "^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
        return match(regex, str);
    }
 
    /**
    * 验证IP地址
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean isIP(String str) {
        String num = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";
        String regex = "^" + num + "\\." + num + "\\." + num + "\\." + num + "$";
        return match(regex, str);
    }
 
    /**
    * 验证网址Url
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsUrl(String str) {
        String regex = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
        return match(regex, str);
    }
 
    /**
    * 验证电话号码
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsTelephone(String str) {
        String regex = "^(\\d{3,4}-)?\\d{6,8}$";
        return match(regex, str);
    }
 
    /**
    * 验证输入密码条件(字符与数据同时出�?)
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsPassword(String str) {
        String regex = "[A-Za-z0-9]+";
        return match(regex, str);
    }
 
    /**
    * 验证输入密码长度 (6-18�?)
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsPasswLength(String str) {
        String regex = "^\\d{6,18}$";
        return match(regex, str);
    }
 
    /**
    * 验证输入邮政编号
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsPostalcode(String str) {
        String regex = "^\\d{6}$";
        return match(regex, str);
    }
 
    /**
    * 验证输入手机号码
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsHandset(String str) {
        String regex = "^[1]+[3,5]+\\d{9}$";
        return match(regex, str);
    }
 
    /**
    * 验证输入身份证号
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsIDcard(String str) {
        String regex = "(^\\d{18}$)|(^\\d{15}$)";
        return match(regex, str);
    }
 
    /**
    * 验证输入两位小数
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsDecimal(String str) {
        String regex = "^[0-9]+(.[0-9]{2})?$";
        return match(regex, str);
    }
 
    /**
    * 验证输入�?年的12个月
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsMonth(String str) {
        String regex = "^(0?[[1-9]|1[0-2])$";
        return match(regex, str);
    }
 
    /**
    * 验证输入�?个月�?31�?
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsDay(String str) {
        String regex = "^((0?[1-9])|((1|2)[0-9])|30|31)$";
        return match(regex, str);
    }
 
    /**
    * 验证日期时间
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合网�?格式的字符串,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean isDate(String str) {
        // 严格验证时间格式�?(匹配[2002-01-31], [1997-04-30],
        // [2004-01-01])不匹�?([2002-01-32], [2003-02-29], [04-01-01])
        // String regex =
        // "^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$";
        // 没加时间验证的YYYY-MM-DD
        // String regex =
        // "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
        // 加了时间验证的YYYY-MM-DD 00:00:00
        String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";
        return match(regex, str);
    }
 
    /**
    * 验证数字输入
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsNumber(String str) {
        String regex = "^[0-9]*$";
        return match(regex, str);
    }
 
    /**
    * 验证非零的正整数
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsIntNumber(String str) {
        String regex = "^[1-9][0-9]*$";
        return match(regex, str);
    }
 
    /**
    * 验证大写字母
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsUpChar(String str) {
        String regex = "^[A-Z]+$";
        return match(regex, str);
    }
 
    /**
    * 验证小写字母
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsLowChar(String str) {
        String regex = "^[a-z]+$";
        return match(regex, str);
    }
 
    /**
    * 验证验证输入字母
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsLetter(String str) {
        String regex = "^[A-Za-z]+$";
        return match(regex, str);
    }
 
    /**
    * 验证验证输入汉字
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsChinese(String str) {
        String regex = "^[\u4e00-\u9fa5],{0,}$";
        return match(regex, str);
    }
 
    /**
    * 验证验证输入字符�?
    * 
    * @param str 待验证的字符�?
    * @return 如果是符合格式的字符�?,返回 <b>true </b>,否则�? <b>false </b>
    */
    public static boolean IsLength(String str) {
        String regex = "^.{8,}$";
        return match(regex, str);
    }
 
    /**
     * 判断字符串是不是double型
     * @param str
     * @return
     */
    public static boolean isNumeric(String str){
        Pattern pattern = Pattern.compile("[0-9]+[.]{0,1}[0-9]*[dD]{0,1}");
        Matcher isNum = pattern.matcher(str);
        if( !isNum.matches() ){
            return false;
        }
        return true;
    }
 
    /**
    * @param regex
    * 正则表达式字符串
    * @param str
    * 要匹配的字符�?
    * @return 如果str 符合 regex的正则表达式格式,返回true, 否则返回 false;
    */
    private static boolean match(String regex, String str) {
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(str);
        return matcher.matches();
    }
}