正则表达式汇总

来源:互联网 发布:鑫园合成软件 编辑:程序博客网 时间:2024/05/29 17:51

最近更新时间:2017年8月1日14:59:42

    正则表达式,可以快速匹配无规律字符串,在常规开发工程中经常会用到,下面是一下经常用到的技术方案:

1、正则表达式校验:

手机号码:/^1(3|4|5|7|8)[0-9]\d{8}$/ || /^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\d{8}$/

邮箱:/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/

数字或字母组合:/^[0-9a-zA-z]*$/g

身份证号码:/^\d{15}|\d{18}}$/


if(!/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\d{8}$/.test(tel)){
    //不是正确的11位手机号码
    return;
}
if(!/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(email)){
    //不是正确的邮箱地址
    return;
}


2、正则对象

    match()方法:

str="The rain in SPAIN stays mainly in the plain";

n=str.match(/ain/gi);//g全局匹配 i不区分大小写

match()方法的返回值n为一个字符串数组,n=["ain","AIN","ain","ain"];

\u**** 元字符,用于查找以十六进制数 xxxx 规定的 Unicode 字符。如果未找到匹配,则返回 null。

\u4e00-\u9fa5 匹配中文,这两个unicode值正好是Unicode表中的全部汉字的头和尾,代表了符合汉字GB18030规范的字符集。

至少匹配一个汉字的正则表达式:

[\u4e00-\u9fa5]+://"[]"表示可以匹配这个区间的任何值,“+”代表至少出现1次。

    replace()方法:

name= name.replace(/[^a-zA-Z\u4E00-\u9FA5\u2006\u0027]/g,'').replace(/^\s+/g,'');//注册用户名校验

/[^a-zA-Z\u4E00-\u9FA5\u2006\u0027]/匹配26个英文字母大小写+全部汉子+2个iOS系统需要的特字符,以外的全部字符。

/^\s+/g全局匹配以空白字符(空格、制表、回车、换行、垂直换行、换页符)开始的一个或连续多个字符串,"+"表示匹配至少一个结果进行匹配,如:一个空格,或连续的多个空格

3、登陆校验实例

用户名:<input type="text" id="username"><br><br>

密码:<input type="password" id="userpassword">
用户名正则表达式:/^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/
密码正则表达式:/[A-Za-z0-9_-]+$/
<script type="text/javascript">

var username=document.getElementById('username');

var userpassword=document.getElementById('userpassword');

username.onchange=function(){

  var reg1=/^[A-Za-z0-9_\-\u4e00-\u9fa5]+$/;
  if(reg1.test(username.value)){
    console.log("用户名是正则表达式");
  }else{
    console.log("请输入正则表达式");
  }

};

userpassword.onchange=function(){

  var reg2=/[A-Za-z0-9_-]+$/;
  if(reg2.test(userpassword.value)){
    console.log("密码是正则表达式");
  }else{
    console.log("请输入正则表达式");
  }

}

4、只支持输入 某些 字符,其它字符无法键入输入框

    只支持汉子和英文:/[^a-zA-Z\u4E00-\u9FA5\uF900-\uFA2D]/g

$input.on('input propertychange',function(){
    $(this).val($(this).val().replace(/[^a-zA-Z\u4E00-\u9FA5\uF900-\uFA2D]/g,''));
});

    只支持数字:$(this).val($(this).val().replace(/[^\d]/g,''));


原创粉丝点击