[正则表达式]常见字段的校验

正则表达式可以方便地对数据进行匹配,也可以执行更加复杂的字符串验证。

下面是一些常见字段的校验,总结一下,以后总会用到的。

  1 import java.util.regex.Matcher;
  2 import java.util.regex.Pattern;
  3
  4 public class Validate {
  5      //对生日的校验
  6      //格式:yyyy-mm-dd
  7      public static String isBirthday(String birthday){
  8          String errorMsg="";
  9          String pat="\\d{4}-\\d{1,2}-\\d{1,2}";
 10          Pattern p=Pattern.compile(pat);
 11          Matcher m=p.matcher(birthday);
 12          if(m.matches()){
 13              errorMsg="生日格式合法.";
 14          }else{
 15              errorMsg="生日格式不合法.";
 16          }
 17          return errorMsg;
 18      }
 19
 20      //对账号的校验
 21      //格式:字母开头,允许6-12字节,允许字母数字下划线
 22      public static String isUsername(String username){
 23          String errorMsg="";
 24          String pat="[a-zA-Z][a-zA-Z0-9_]{5,11}";
 25          Pattern p=Pattern.compile(pat);
 26          Matcher m=p.matcher(username);
 27          if(m.matches()){
 28              errorMsg="账号格式合法.";
 29          }else{
 30              errorMsg="账号格式不合法.";
 31          }
 32          return errorMsg;
 33      }
 34
 35      //对QQ号的校验
 36      //格式:从10000开始  5-11位
 37      public static String isQqnumber(String qqnumber){
 38          String errorMsg="";
 39          String pat="[1-9][0-9]{4,10}";
 40          Pattern p=Pattern.compile(pat);
 41          Matcher m=p.matcher(qqnumber);
 42          if(m.matches()){
 43              errorMsg="QQ号格式合法.";
 44          }else{
 45              errorMsg="QQ号格式不合法";         }
 46          return errorMsg;
 47      }
 48
 49      //对手机号码的校验
 50      //格式:13 145 147 15 18开头
 51      public static String isPhonenumber(String phonenumber){
 52          String errorMsg="";
 53          String pat="(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}";
 54          Pattern p=Pattern.compile(pat);
 55          Matcher m=p.matcher(phonenumber);
 56          if(m.matches()){
 57              errorMsg="手机号码格式合法.";
 58          }else{
 59              errorMsg="手机号码格式不合法.";
 60          }
 61          return errorMsg;
 62      }
 63
 64      //对身份证号码的校验
 65      public static String isIdnumber(String idnumber){
 66          String errorMsg="";
 67          String pat="\\d{15}|\\d{18}";
 68          Pattern p=Pattern.compile(pat);
 69          Matcher m=p.matcher(idnumber);
 70          if(m.matches()){
 71              errorMsg="身份证号码格式合法.";
 72          }else{
 73              errorMsg="身份证号码格式不合法.";
 74          }
 75          return errorMsg;
 76      }
 77
 78      //对电子邮箱的校验
 79      //格式:[email protected]
 80      public static String isAddress(String address){
 81          String errorMsg="";
 82          String pat="\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
 83          Pattern p=Pattern.compile(pat);
 84          Matcher m=p.matcher(address);
 85          if(m.matches()){
 86              errorMsg="电子邮箱格式合法.";
 87          }else{
 88              errorMsg="电子邮箱格式不合法.";
 89          }
 90          return errorMsg;
 91      }
 92
 93      //对电话号码的校验
 94      //格式:XXX-XXXXXXXX或XXXX-XXXXXXX
 95      public static String isPhone(String phone){
 96          String errorMsg="";
 97          String pat="\\d{3}-\\d{8}|\\d{4}-\\d{7}";
 98          Pattern p=Pattern.compile(pat);
 99          Matcher m=p.matcher(phone);
100          if(m.matches()){
101              errorMsg="电话号码格式合法.";
102          }else{
103              errorMsg="电话号码格式不合法.";
104          }
105          return errorMsg;
106      }
107
108      //对邮政编码的校验
109      //中国邮政编码为6位数字
110      public static String isPostnumber(String postnumber){
111          String errorMsg="";
112          String pat="[1-9]\\d{5}(?!\\d)";
113          Pattern p=Pattern.compile(pat);
114          Matcher m=p.matcher(postnumber);
115          if(m.matches()){
116              errorMsg="邮政编码格式合法.";
117          }else{
118              errorMsg="邮政编码格式不合法.";
119          }
120          return errorMsg;
121      }
122
123      //对中文名的校验
124      //有两个以上中文
125      public static String isChinesename(String chinesename){
126          String errorMsg="";
127          String pat="[\u4e00-\u9fa5]{2,}";
128          Pattern p=Pattern.compile(pat);
129          Matcher m=p.matcher(chinesename);
130          if(m.matches()){
131              errorMsg="中文名格式合法.";
132          }else{
133              errorMsg="中文名格式不合法.";
134          }
135          return errorMsg;
136      }
137
138      //对website的校验
139      public static String isWebsite(String website){
140          String errorMsg="";
141          String pat="http://([\\w-]+\\.)+[\\w-]+(/[\\w-./?%&=]*)?$";
142          Pattern p=Pattern.compile(pat);
143          Matcher m=p.matcher(website);
144          if(m.matches()){
145              errorMsg="website格式合法.";
146          }else{
147              errorMsg="website格式不合法.";
148          }
149          return errorMsg;
150      }151  }
时间: 2024-11-08 21:32:38

[正则表达式]常见字段的校验的相关文章

正则表达式常见例题

常见例题 例1:北美地区的电话号 编码方案:电话号码有一个3位数的区号和一位7位数的号码组成(这个7位数有分成  一个3位的局号和一个4位的路号,局号和路号之间使用连字符分隔) 每位电话号码可以是任意数字,但是区号和局号的第一位数字不能是0或1.实际书写号码是往往会把区号写在括号里面,或者将区号使用连字符和后面的局号连接起来.例如:(555)123-1234或555-123-1234,有时候在括号你里面会包含空格.例如:(555 )123-1234 文本: J.Doe:248-555-1234

《java入门第一季》之正则表达式常见规则

正则表达式规则不用记住,只是知道是做什么用的即可.常见规则如下: A:字符 x 字符 x.举例:'a'表示字符a \\ 反斜线字符. \n 新行(换行)符 ('\u000A') (\\n来表示换行) \r 回车符 ('\u000D') B:字符类 [abc] a.b 或 c(简单类) [^abc] 任何字符,除了 a.b 或 c(否定) [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(范围) [0-9] 0到9的字符都包括 C:预定义字符类 . 任何字符.我的就是.字符本身,怎么表

正则表达式常见字符集

用于收藏,内容来源:http://www.jb51.net/article/72867.htm 一.校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 8 正数

正则表达式--指定时间格式校验

1.对闰年平年的划分,关键是看2月最后一天是28还是29进行划分 ^((([0-9]{2})(0[48]|[2468][048]|[13579][26])) #闰年,能被4整除但不能被100整除 |((0[48]|[2468][048]|[13579][26])00) #闰年,能被400整除 -02-29) #匹配闰年2月29日这一天.如果不是这一天,则由下面式子继续匹配验证. |([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}

Jmeter(三十七)循环控制器+交替控制器+事务控制器 完美实现接口字段参数化校验

我们在做接口自动化的时候,常常因为无法灵活的的校验接口字段而烦恼.不能自动校验接口字段的脚本,也就不能称之为接口自动化.因此,我设计了一套组合式的控制器,可以完美的解决这个问题 1:首先我们需要在本地建一个异常字段校验的字符集 比如我这里写了五个校验,分别是最大值,最小值,中文,为空,特殊字符 测试交流群:317765580 2:在线程组下创建一个循环控制器,循环次数设置为三次.循环控制器下建一个交替控制器.交替控制器的作用是交替执行控制器下的元件.交替控制器下属建立三个事务控制器. 最外层的循

Spring AOP实现 Bean字段合法性校验

使用SpringAop 验证方法参数是否合法 先定义两个注解类ValidateGroup 和 ValidateFiled ValidateGroup .java package com.zf.ann; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotat

正则表达式常见规则

[]:匹配[]中定义的任意字符: {3,10}:前一个规则最少出现3次,最多出现10次: {3,}:前一个规则最少出现3次,没有上限: {3}:前一个规则只能出现3次,不能多也不能少: |:或者: \u4e00-\\u9fa5:汉字匹配: +:等价于{1,},前一个规则最少出现一次,无上限: *:等价于{0,},前一个规则可以不出现,也可以出现多次: ?:等价于{0,1},前一个规则可以不出现,最多只能出现一次: .:匹配任何字符,使用时要用[]把它括起来: \d:等价于[0-9]匹配数字: \

正则表达式常见形式

表达式 含义 体现的逻辑 [A-Za-z].*[0-9]|[0-9].*[A-Za-z] 同时包含数字和字母 1.要求检索的字符串符合多个条件中的一个, 2.逻辑或 ^(?=.*[a-z])(?=.*[A-Z])(?=.*[^A-Za-z0-9]) 使用大小写组合,并且含有特殊字符 1.要求检索的字符串符合多个条件,逻辑与2.正向预查 ^(?!.*(.)\\1{2,}) 没有重复3次及以上的同一字符 反向预查

正则表达式 常见的简写形式

\d 表示 [0-9].表示一位数字(记忆方式:其英文是 digit 数字). \D 表示 [^0-9].表示除数字外的任意字符. \w 表示 [0-9a-zA-Z_].表示数字.大小写字母和下划线.(记忆方式:w是word的简写,也成单次字符). \W 表示 [^0-9a-zA-Z_].非单词字符. \s 表示 [ \t\v\n\r\f].表示空白符,包括空白符.水平制表符.垂直制表符.换行符.回车符.换页符. \S 表示 [^ \t\v\n\r\f\].非空白符. . 表示 [^\n\r\u