文章目录
-
-
- 一、validation--参数校验
- 二、@Pattern 利用正则自定义注解
-
一、validation–参数校验
JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,用于对 Java Bean 中的字段的值进行验证。Hibernate Validator则是Hibdernate提供的一种对该规范的实现。
——即Hibernate Validator是用来做参数校验。
Hibernate Validator:是JSR-303参考实现。
Constranit desc
@Null 被注解的元索必须为空
@notNull 被注解的元素必须不为空
@Min 被注解的元素必须是数字且必须小于等于指定值
@Max 被注解的元素必须是数字且必须大于等于指定值
@Past 被注解的元索必须是- -个过去的日期
@Future 被注解的元素必须是一个将来的日期
@Pattern 被注解的元素必须符合给定的正则表达式
@AssertTure 被注解的元素必须为ture
@AssertFalse 被注解的元素必须为false
附加注解:
Constranit desc
@Email 被注解的元素必须是email地址
@Length 被注解的元素必须在指定的范围内
@NotEmpty 被注解的元素是必须
@Range 被注解的元素可以是数字或者是数字的字符串必须在指定的范围内
@URL 被注解的元素必须是一个URL
demo
1 2 3 4 | @Max(value = 2,message = "登录类型只能是1或2") @Min(value = 1,message = "登录类型只能是1或2") @NotNull(message = "登录类型不能为空") private Integer type; |
二、@Pattern 利用正则自定义注解
@Pattern 在 Spring Boot @Validated 中可能是比较常见的。
在实体类的字段名上添加@Pattern注解,有个属性regexp,该属性的值就是正则表达式。
1 2 | //数字和字母组合可为空字符串 : @Pattern(regexp = "^\\s*|[0-9A-Za-z]*$", message = "编号为数字和字母组合") |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ^ 表示匹配字符串的开始位置 (例外 用在中括号中[ ] 时,可以理解为取反,表示不匹配括号中字符串) $ 表示匹配字符串的结束位置 * 表示匹配 零次到多次 + 表示匹配 一次到多次 (至少有一次) ? 表示匹配零次或一次 . (圆点)表示匹配单个字符 | 表示为或者,两项中取一项(可用于两个正则之间) ( ) 小括号表示匹配括号中全部字符 [ ] 中括号表示匹配括号中一个字符 范围描述 如[0-9 a-z A-Z] { } 大括号用于限定匹配次数 如 {n}表示匹配n个字符 {n,}表示至少匹配n个字符 {n,m}表示至少n,最多m \ 转义字符 如上基本符号匹配都需要转义字符 如 \*表示匹配*号 \w 表示英文字母和数字 \W 非字母和数字 \d 表示数字 \D 非数字 \s表示空字符串 当使用-时,需要放在最后一个位置,否则会被当成数字和字母之间区间的标识 |
工作常用正则工具类整理如下:
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 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 | package com.xx.xxx.xxxxx.utils; import org.apache.log4j.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author xdja * @date 2020/11/20 16:08 */ public final class RegexpUtils {<!-- --> /** * 匹配email地址 * <p> * <p><center>[wp_ad_camp_3]</center></p><p> * 格式: [email protected] * <p> * 匹配 : [email protected] 或 [email protected] * <p> * 不匹配: foo@bar 或 [email protected] */ public static final String EMAIL_REGEXP = "^([a-zA-Z0-9]+[-|\\_|\\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[-|\\_|\\.]?)*[a-zA-Z0-9]+\\.[a-zA-Z]{2,}$"; /** * 匹配并提取url * <p> * <p> * 格式: XXXX://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX * <p> * 匹配 : http://www.suncer.com 或news://www * <p> * 不匹配: c:/window */ public static final String URL_REGEXP = "(//w+)://([^/:]+)(://d*)?([^#//s]*)"; /** * 匹配并提取http * <p> * 格式: http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX 或 ftp://XXX.XXX.XXX 或 https://XXX * <p><center>[wp_ad_camp_4]</center></p><p> * 匹配 : http://www.suncer.com:8080/index.html?login=true * <p> * 不匹配: news://www */ public static final String HTTP_REGEXP = "(http|https|ftp)://([^/:]+)(://d*)?([^#//s]*)"; /** * 匹配并提取http * <p> * 格式: http://XXX.XXX.XXX.XX/XXX.XXX?XXX=XXX 或 ftp://XXX.XXX.XXX 或 https://XXX * <p> * 匹配 : http://www.suncer.com:8080/index.html?login=true * <p> * 不匹配: news://www */ public static final String HTTP_REGEXP_BANNER = "((https|http|ftp|rtsp|mms)?://)([0-9a-z_!~*'()-]+\\.)*([a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(\\.[a-zA-Z]{1,4})(:[0-9]{1,4})?((/?)|(/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+/?)\\.?$"; /** * 匹配日期 * <p> * <p> * 格式(首位不为0): XXXX-XX-XX或 XXXX-X-X * <p> * <p> * 范围:1900--2099 * <p> * <p> * 匹配 : 2005-04-04 * <p> * <p> * 不匹配: 01-01-01 */ public static final String DATE_BARS_REGEXP = "^((((19){1}|(20){1})\\d{2})|\\d{2})-[0,1]?\\d{1}-[0-3]?\\d{1}$"; /** * wzw * <p> * <p> * 匹配格式 20160606 */ public static final String DATE_BARS_DAY_REGEXP = "^((((19){1}|(20){1})\\d{2})|\\d{2})[0,1]?\\d{1}[0-3]?\\d{1}$"; /** * 匹配格式 20130101 */ public static final String DATE_BARS_REGEXP_SIMPLE = "([\\d]{4}(((0[13578]|1[02])((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|(1[0-9])|(2[0-8])))))|((((([02468][048])|([13579][26]))00)|([0-9]{2}(([02468][048])|([13579][26]))))(((0[13578]|1[02])((0[1-9])|([12][0-9])|(3[01])))|(((0[469])|11)((0[1-9])|([12][0-9])|30))|(02((0[1-9])|(1[0-9])|(2[0-9])))))"; /** * 匹配格式 20130101 */ public static final String DATE_BARS_REGEXP_HOUR_FULL = "^\\d{4}-(?:0\\d|1[0-2])-(?:[0-2]\\d|3[01])( (?:[01]\\d|2[0-3])\\:[0-5]\\d)?$"; /** * 匹配日期 * <p> * <p> * 格式(首位不为0): XXXX-XX-XX或 XXXX-X-X * <p> * <p> * 范围:1900--2099 * <p> * <p> * 匹配 : 2005-04-04 11:00:00 * <p> * <p> * 不匹配: 01-01-01 */ public static final String DATE_BARS_REGEXP_HOUR = "^((((19){1}|(20){1})\\d{2})|\\d{2})-[0,1]?\\d{1}-[0-3]?\\d{1}\\s[0,2]?\\d{1}[0,9]?\\d{1}$"; /** * 匹配 : 2005-04-04 11:00:00 */ public static final String DATE_BARS_REGEXP_HOUR_MIN_SS = "^\\d{4}\\D+\\d{1,2}\\D+\\d{1,2}\\D+\\d{1,2}\\D+\\d{1,2}\\D+\\d{1,2}\\D*$"; /** * 匹配日期 * <p> * <p> * 格式: XXXX.XX.XX * <p> * <p> * 范围: * <p> * <p> * 匹配 : 2005.04.04 * <p> * <p><center>[wp_ad_camp_5]</center></p><p> * 不匹配: 01.01.01 */ public static final String DATE_SLASH_REGEXP = "^[0-9]{4}\\.[0-9]{2}\\.[0-9]{2}$"; /** * 匹配电话 * <p> * <p> * 格式为: 0XXX-XXXXXX(10-13位首位必须为0) 或0XXX XXXXXXX(10-13位首位必须为0) 或 * <p> * (0XXX)XXXXXXXX(11-14位首位必须为0) 或 XXXXXXXX(6-8位首位不为0) 或 XXXXXXXXXXX(11位首位不为0) * <p> * <p> * 匹配 : 0371-123456 或 (0371)1234567 或 (0371)12345678 或 010-123456 或 010-12345678 或 12345678912 * <p> * <p> * 不匹配: 1111-134355 或 0123456789 */ public static final String PHONE_REGEXP = "^(?:0[0-9]{2,3}[-//s]{1}|//(0[0-9]{2,4}//))[0-9]{6,8}$|^[1-9]{1}[0-9]{5,7}$|^[1-9]{1}[0-9]{10}$"; /** * 11位手机号格式验证 */ public static final String MOBILE_PHONE_REGEXP = "^1[3,4,5,6,7,8,9]\\d{9}$"; /** * 20位联系方式格式验证 */ public static final String PHONE_20_REGEXP = "^[0-9\\-]{1,20}$"; /** * 匹配身份证 * <p> * 格式为: XXXXXXXXXX(10位) 或 XXXXXXXXXXXXX(13位) 或 XXXXXXXXXXXXXXX(15位) 或 XXXXXXXXXXXXXXXXXX(18位) * <p> * 匹配 : 0123456789123 * <p> * 不匹配: 0123456 */ public static final String IDENTITY_CARD_REGEXP = "^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$"; /** * 匹配身份证 * <p> * 格式为: XXXXXXXXXX(10位) 或 XXXXXXXXXXXXX(13位) 或 XXXXXXXXXXXXXXX(15位) 或 XXXXXXXXXXXXXXXXXX(18位) * <p> * 匹配 : 0123456789123 * <p> * 不匹配: 0123456 */ public static final String ID_CARD_REGEXP = "^d{18} | $"; /** * 匹配邮编代码 * <p> * 格式为: XXXXXX(6位) * <p> * 匹配 : 012345 * <p> * 不匹配: 0123456 */ public static final String ZIP_REGEXP = "^[0-9]{6}$"; /** * 不包括特殊字符的匹配 (字符串中不包括符号 数学次方号^ 单引号' 双引号" 分号; 逗号, 帽号: 数学减号- 右尖括号> 左尖括号< 反斜杠/ 即空格,制表符,回车符等 ) * <p> * 格式为: x 或 一个一上的字符 * <p> * 匹配 : 012345 * <p> * 不匹配: 0123456 // ;,:-<>//s].+$";// */ public static final String NON_SPECIAL_CHAR_REGEXP = "^[^'/"; /** * 匹配一位数的0-1整数 */ public static final String ZERO__TO_ONE_NUMBER = "[0-1]$"; /** * 匹配一位数的0-2整数 */ public static final String ZERO__TO_TWO_NUMBER = "[0-2]$"; /** * 匹配一位数的0-2整数 */ public static final String ZERO__TO_THREE_NUMBER = "[0-3]$"; /** * 匹配一位数的1-4的非负整数 */ public static final String ONE__TO_FOUR_NATURAL_NUMBER = "[1-4]$"; /** * 匹配一位数的0-4的非负整数 */ public static final String ZERO__TO_FOUR_NATURAL_NUMBER = "[0-4]$"; /** * 匹配一位数的1-3的非负整数 */ public static final String ONE_TO_THREE_NATURAL_NUMBER = "[1-3]$"; /** * 匹配一位数的1-3的非负整数 */ public static final String ONE__TO_TWO_NATURAL_NUMBER = "[1-3]$"; /** * 匹配一位数的1-6的非负整数 */ public static final String ONE__TO_SIX_NATURAL_NUMBER = "[1-6]$"; /** * 匹配0-18的正整数 */ public static final String ONE_TO_EIGHTEEN_NUMBER = "^(18|[0-9]|(1[0-8]))$"; /** * 匹配1-99的正整数 */ public static final String ONE_TO_NINETYNINE_NUMBER = "^(99|[1-9]|([1-9][0-9]))$"; /** * 匹配非负整数(正整数 + 0) */ public static final String NON_NEGATIVE_INTEGERS_REGEXP = "^//d+$"; /** * 匹配带1位小数且不超过2位的数 */ public static final String CAR_LENGTH_REGEXP = "^(\\d|\\d\\d)(\\.\\d)?$"; /** * 匹配整数位最大3位且小数位最大2位的数 */ public static final String CAR_LOAD_REGEXP = "^(\\d{1,3})(\\.\\d{1,2})?$"; /** * 匹配不包括零的非负整数(正整数 > 0) */ public static final String NON_ZERO_NEGATIVE_INTEGERS_REGEXP = "^[1-9]+//d*$"; /** * 匹配包括零的正整数 */ public static final String ZERO_NEGATIVE_INTEGERS_REGEXP = "^[0-9]*[0-9][0-9]*$"; /** * 匹配正整数 */ public static final String POSITIVE_INTEGER_REGEXP = "^[0-9]*[1-9][0-9]*$"; /** * 匹配非正整数(负整数 + 0) */ public static final String NON_POSITIVE_INTEGERS_REGEXP = "^((-//d+)|(0+))$"; /** * 匹配负整数 */ public static final String NEGATIVE_INTEGERS_REGEXP = "^-[0-9]*[1-9][0-9]*$"; /** * 匹配整数 */ public static final String INTEGER_REGEXP = "^-?//d+$"; /** * 匹配非负浮点数(正浮点数 + 0) */ public static final String NON_NEGATIVE_RATIONAL_NUMBERS_REGEXP = "^\\d+(\\.\\d+)?$"; /** * 匹配正浮点数 */ public static final String POSITIVE_RATIONAL_NUMBERS_REGEXP = "^[0-9]+(.[0-9]{1})?$"; /** * 匹配正浮点数(1-6位) */ public static final String POSITIVE_ONE_TO_SIX_RATIONAL_NUMBERS_REGEXP = "^((?!0\\d)\\d+(\\.\\d{1,6}?))$"; /** * 匹配非正浮点数(负浮点数 + 0) */ public static final String NON_POSITIVE_RATIONAL_NUMBERS_REGEXP = "^((-//d+(//.//d+)?)|(0+(//.0+)?))$"; /** * 匹配负浮点数 */ public static final String NEGATIVE_RATIONAL_NUMBERS_REGEXP = "^(-(([0-9]+//.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*//.[0-9]+)|([0-9]*[1-9][0-9]*)))$"; /** * 匹配浮点数 */ public static final String RATIONAL_NUMBERS_REGEXP = "^(-?//d+)(//.//d+)?$"; /** * 匹配由26个英文字母组成的字符串 */ public static final String LETTER_REGEXP = "^[A-Za-z]+$"; /** * 匹配由26个英文字母的大写组成的字符串 */ public static final String UPWARD_LETTER_REGEXP = "^[A-Z]+$"; /** * 匹配由A-D英文字母的大写的字符 */ public static final String UPWARD_LETTER_A_D = "^[A-D]{1}"; /** * 匹配由26个英文字母的大写的字符 */ public static final String UPWARD_LETTER_STR = "^[A-Z]{1}$"; /** * 匹配由26个英文字母的小写组成的字符串 */ public static final String LOWER_LETTER_REGEXP = "^[a-z]+$"; /** * 匹配由数字和26个英文字母组成的字符串 */ public static final String LETTER_NUMBER_REGEXP = "^[A-Za-z0-9]+$"; /** * 匹配由数字、26个英文字母或者下划线组成的字符串 */ public static final String LETTER_NUMBER_UNDERLINE_REGEXP = "^//w+$"; /** * 必须由数字和26个英文字母组合组成的字符串 */ public static final String LETTER_NUMBER_REGEXP_MUST = "[0-9]+[a-zA-Z]+[0-9a-zA-Z]*|[a-zA-Z]+[0-9]+[0-9a-zA-Z]*"; /** * 匹配5位数字 */ public static final String FIVE_NUMBER_ONLY_REGEXP = "^[0-9]{5}$"; /** * 匹配4位数字 */ public static final String FOUR_NUMBER_ONLY_REGEXP = "^[0-9]{4}$"; /** * 匹配1位字母 */ public static final String ONE_LETTER = "^[a-zA-Z]{1}$"; /** * 匹配19位数字 */ public static final String NINETEEN_NUMBER_ONLY_REGEXP = "^[0-9]{19}$"; /** * 匹配8位数字 */ public static final String EIGHT_NUMBER_ONLY_REGEXP = "^[0-9]{8}$"; /** * 匹配19位数字 */ public static final String TWENTY_NUMBER_ONLY_REGEXP = "^[0-9]{20}$"; /** * 匹配1位数字 */ public static final String NUMBER_ONLY_ONE_REGEXP = "^\\d$"; /** * 匹配日期 * <p> * <p> * 格式: yyyymmdd * <p> * <p> * 范围: * <p> * <p> * 匹配 : 20050404 * <p> * <p> * 不匹配: 010101 */ public static final String DATE_YYYYMMMDD_REGEXP = "(" + "(^\\d{3}[1-9]|\\d{2}[1-9]\\d{1}|\\d{1}[1-9]\\d{2}|[1-9]\\d{3}" + "(10|12|0?[13578])" + "((3[01]|[12][0-9]|0?[1-9])?)" + "([\\s]?)" + "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?))$" + "|" + "(^\\d{3}[1-9]|\\d{2}[1-9]\\d{1}|\\d{1}[1-9]\\d{2}|[1-9]\\d{3}" + "(11|0?[469])" + "(30|[12][0-9]|0?[1-9])" + "([\\s]?)" + "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?))$" + "|" + "(^\\d{3}[1-9]|\\d{2}[1-9]\\d{1}|\\d{1}[1-9]\\d{2}|[1-9]\\d{3}" + "(0?2)" + "(2[0-8]|1[0-9]|0?[1-9])" + "([\\s]?)" + "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?))$" + "|" + "(^((\\d{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[13579][26])00)" + "(0?2)" + "(29)" + "([\\s]?)" + "((([0-1]?\\d|2[0-3]):([0-5]?\\d):([0-5]?\\d))?))$" + ")"; /** * 匹配日期 格式: yyyymm 匹配 : 200504 不匹配: 010101 */ public static final String DATE_YYYYMM_REGEXP = "^(\\d{4})(0\\d{1}|1[0-2])$"; /** * 匹配日期 格式: yyyy-MM-dd 10位 匹配 : 2005-04-01 不匹配: 010101 */ public static final String DATE_YYYY_MM_DD_REGEXP = "^((?:19|20)\\d\\d)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$"; /** * 匹配日期 格式: yyyy/MM/dd 10位 匹配 : 2005/04/01 不匹配: 010101 */ public static final String DATE_YYYYMMDD_REGEXP = "^((?:19|20)\\d\\d)/(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])$"; /** * 匹配日期 格式: yyyyMMdd 8位 匹配 : 20050401 不匹配: 010101 */ public static final String DATE_YYYYMMDD_EIGHT_REGEXP = "^((?:19|20)\\d\\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$"; /** * 匹配格式 2016-02-02 01:01 */ public static final String DATE_BARS_REGEXP_HOUR_MIN = "^\\d{4}-(?:0\\d|1[0-2])-(?:[0-2]\\d|3[01]) (?:[01]\\d|2[0-3])\\:[0-5]\\d?$"; /** * 匹配格式 2016-02-02 01:01:01 */ public static final String DATE_BARS_REGEXP_HOUR_MIN_SECOND = "^\\d{4}[-]([0][1-9]|(1[0-2]))[-]([1-9]|([012]\\d)|(3[01]))([ \\t\\n\\x0B\\f\\r])(([0-1]{1}[0-9]{1})|([2]{1}[0-4]{1}))([:])(([0-5]{1}[0-9]{1}|[6]{1}[0]{1}))([:])((([0-5]{1}[0-9]{1}|[6]{1}[0]{1})))$"; /** * 匹配整数或者空串 */ public static final String NUMBER_BLANK_REGEXP = "^[1-9]\\d*|0|^\\s*$"; /** * 匹配正整数或者空串 */ public static final String POSITIVE_NUMBER_BLANK_REGEXP = "^[1-9]\\d*|^\\s*$"; /** * 任意位数的非负整数 */ public static final String NATURAL_NUMBER = "\\d*$"; /** * 数字加逗号 */ public static final String COMMA_NUMBER = "[\\d,]*$"; /** * 匹配汉字 */ public static final String CHINESE_VAR = "[\\u4e00-\\u9fa5]*$"; /** * 不允许包含"/"或""正则 */ public static final String BACK_SLANT_REGEXP = "^[^/^\\\\]+$"; /** * 匹配日期 格式: yyyy-MM 7位 匹配 : 2005-04 不匹配: 0101 */ public static final String DATE_YYYY_MM_REGEXP = "^((?:19|20)\\d\\d)-(0[1-9]|1[012])$"; private RegexpUtils() {<!-- --> } /** * 校验正则表达式结果 * * @param content * @param reg * @return */ public static boolean validateInfo(String content, String reg) {<!-- --> Pattern pat = Pattern.compile(reg); Matcher mat = pat.matcher(content); return mat.matches(); } public static void main(String[] args) {<!-- --> System.out.println(test("1")); System.out.println(test("12345678")); System.out.println(test("123456789")); System.out.println(test("1234567")); } public static boolean test(String date) {<!-- --> Pattern pat = Pattern.compile(RegexpUtils.EIGHT_NUMBER_ONLY_REGEXP); Matcher mat = pat.matcher(date); boolean dateType = mat.matches(); return dateType; } } |