正则表达式-常用正则表达式汇总(大全)

来源:互联网 发布:js strict模式 编辑:程序博客网 时间:2024/06/04 19:27

本文将我们在日常工作中经常使用的一些正则表达式进行汇总,需要的时候可以直接拷贝来使用。

常用正则表达式

长日期格式

匹配带年月日、时分秒的子串,例如:2016-01-12 18:53:55。

/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/

短日期格式

匹配带年月日的子串,例如:2016-01-12。

/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/                            

电话号码格式(中国)

匹配中国格式的固定电话号码,例如:(010)0773-5888888,0773-5888888,5888888都能匹配。

/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i

手机号码格式

匹配中国格式的手机号码,匹配任何以13、15、18开头的11位手机号码。

/^(13|15|18)\d{9}$/i

传真号码格式

匹配传真号码子串。

/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/
 

邮政编码(中国)格式

匹配中国格式的邮政编码。

/^[\d]{6}$/

判断字符串中是否存在汉字字符

用于判断某个字符串中是否包含汉字字符。

//[\u4E00-\u9FA5]为汉字,[\uFE30-\uFFA0]为全角符号
/^[\x00-\xff]*$/

判断字符串是否为中文

用于判断某个字符串是否由中文汉字组成。

/^[\u0391-\uFFE5]+$/

判断字符串是否为英文

用于判断某个字符串是否由英文组成。

/^[A-Za-z]+$/i

是否是正确的文件名称(路径)格式

用于判断某个字符串是否是正确的文件名称(路径)格式。例如:d://abc/xyz/ok.txt,file:///F:/zzz/ccc/bbb/aaa.html,或者http://www.abc.com/index.html

/[\\\/\*\?\|:<>]/g

是否是正确的URL格式

用于判断某个字符串是否是正确的URL格式。

/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i

上面的正则表达式的详细解释如下:

var strRegex = "^((https|http|ftp|rtsp|mms)?:                       //)"
          +"?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"//ftp的user@//         
          +"(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184
          +"|"                            // 允许IP和DOMAIN(域名)
          +"([0-9a-z_!~*'()-]+\.)*"       // 域名- www.
          +"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名        
          +"[a-z]{2,6})"                  // first level domain- .com or .museum
          +"|"                            // 允许为本机        
          +"localhost|127.0.0.1"          // 允许为本机地址
          +"(:[0-9]{1,4})?"               // 端口- :80
          +"((/?)|"                       // a slash isn't required if there is no file name
          +"(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";

是否为合法的货币格式

用于判断某个字符串是否为合法的货币格式。

/^d{0,}(\.\d+)?$/i

是否为合法的QQ号码格式

用于判断某个字符串是否为合法的QQ号码格式。

/^[1-9]\d{4,11}$/i

是否为合法的车牌号码

用于判断某个字符串是否为合法的车牌号码。

/^[\u4E00-\u9FA5][\da-zA-Z]{6}$/

是否为合法的汽车发动机序列号

用于判断某个字符串是否为合法的汽车发动机序列号。

/^[a-zA-Z0-9]{16}$/

是否为合法的用户名字符

用于判断某个字符串是否为合法的用户名字符。合法的用户名要求以字母开头,允许6-16字节,允许字母数字下划线。

/^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i

身份证号码(中国)格式

用于验证中国格式的身份证号码。

function isIDCard(str){
  if(str =="")returnfalse;
  variSum = 0;
  varinfo ="";
  varsId = str;
  varaCity = { 11:"北京", 12:"天津", 13:"河北", 14:"山西", 15:"内蒙古", 21:"辽宁", 22:"吉林", 23:"黑龙江", 31:"上海", 32:"江苏", 33:"浙江", 34:"安徽", 35:"福建", 36:"江西", 37:"山东", 41:"河南", 42:"湖北", 43:"湖南", 44:"广东", 45:"广西", 46:"海南", 50:"重庆", 51:"四川", 52:"贵州", 53:"云南", 54:"西藏", 61:"陕西", 62:"甘肃", 63:"青海", 64:"宁夏", 65:"新疆", 71:"台湾", 81:"香港", 82:"澳门", 91:"国外"};
  if(!/^\d{17}(\d|x)$/i.test(sId)) {returnfalse; }
  sId = sId.replace(/x$/i,"a");
  //非法地区
  if(aCity[parseInt(sId.substr(0, 2), 10)] ==null) {returnfalse; }
  varsBirthday = sId.substr(6, 4) +"-"+ Number(sId.substr(10, 2)) +"-"+ Number(sId.substr(12, 2));
  vard =new Date(sBirthday.replace(/-/g,"/"))
  //非法生日
  if(sBirthday != (d.getFullYear() +"-"+ (d.getMonth() + 1) +"-"+ d.getDate())) {returnfalse; }
  for(vari = 17; i >= 0; i--) { iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11); }
  if(iSum % 11 != 1) {returnfalse; }
  returntrue;
}

是否是正确的数字格式

验证某个字符串是否为正确的数字格式。正确的数字格式可以是正数、负数、整数、正整数、负整数、浮点数、正浮点数、负浮点数。

function isNumeric(str){
  if(str =="")returnfalse;
  //验证是否是数字
  if(isNaN(str)) {returnfalse; }
  if(arguments.length == 0) {returnfalse; }
  switch(flag) {
      case"":
          returntrue;
      case"+":       //正数
          return/(^\+?|^\d?)\d*\.?\d+$/.test(str);
      case"-":       //负数
          return/^-\d*\.?\d+$/.test(str);
      case"i":       //整数
          return/(^-?|^\+?|\d)\d+$/.test(str);
      case"+i":       //正整数
          return/(^\d+$)|(^\+?\d+$)/.test(str);
      case"-i":       //负整数
          return/^[-]\d+$/.test(str);
      case"f":       //浮点数
          return/(^-?|^\+?|^\d?)\d*\.\d+$/.test(str);
      case"+f":       //正浮点数
          return/(^\+?|^\d?)\d*\.\d+$/.test(str);
      case"-f":       //负浮点数
          return/^[-]\d*\.\d$/.test(str);
      default:       //缺省
          returntrue;
  }
}

是否是正确的颜色(#FFFFFF形式)格式

验证某个字符串是否为正确的十六进制颜色格式。

function isColor(str){
  if(str =="") {returntrue};
  if(str.length != 7) {returnfalse};
  return(str.search(/\#[a-fA-F0-9]{6}/) != -1);
}                             

判断当前String对象是否可以作为安全密码字符

验证某个字符串是否是否可以作为安全密码字符。安全密码字符的定义是由字符和数字组成,至少6位。注意,测试结果要进行取反操作,就是说得到的结果为false表示安全,得到的结果为true表示不安全。

/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/      

对字符串进行Html编码

可以将某个字符串进行HTML编码。即将相应的HTML标签符号转换为实体符号。例如:>转换为&gt;

function toHtmlEncode(str){
  vartemp = str;
  temp = temp.replace(/&/g,"&");
  temp = temp.replace(/</g,"<");
  temp = temp.replace(/>/g,">");
  temp = temp.replace(/\'/g, "'");
  temp = temp.replace(/\"/g, """);
  temp = temp.replace(/\n/g,"<br>");
  temp = temp.replace(/\ /g," ");
  temp = temp.replace(/\t/g,"    ");
  returntemp;
}                            
0 0