首页 前端知识 常用的js正则表达式验证规则第一篇(js代码篇)

常用的js正则表达式验证规则第一篇(js代码篇)

2023-05-14 16:05:04 前端知识 前端哥 64 190 我要收藏

手机号码验证规则:

var mobilePhone = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;

目前匹配号段

中国电信号段

133、149、153、173、177、180、181、189、199

中国联通号段

130、131、132、145、155、156、166、175、176、185、186

中国移动号段

134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198

其他号段

14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。

虚拟运营商

电信:1700、1701、1702

移动:1703、1705、1706

联通:1704、1707、1708、1709、171


座机号码验证规则:

//带区号的固定电话正则(一般都用带区号验证)var telePhone = /^(([0\ ]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/;//不带区号的固定电话var telePhone = /^(\d{7,8})(-(\d{3,}))?$/;


手机、固话同时验证:

    <form action="#y-url" method="get">        <input type="text" name="phone" id="phid" value="12345678">        <span style="color: red;" id="spanid">        </span>        <input type="button" value="测试电话号码" onclick="demo()">    </form>
        function demo() {            var spanid = document.getElementById("spanid");//获取输入框            var phid = document.getElementById("phid");//获取输入的内容            var contactPhone = phid.value;            // var a = phid.value;            // console.log(phid.value);//?无法输出在控制台            //手机格式            var mobilePhone = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;            //座机格式            var telePhone = /^((0\d{2,3})-)?(\d{7,8})$/;            if(!mobilePhone.test(contactPhone)&&!telePhone.test(contactPhone)){                confirmMsg("提示", "联系电话格式不正确,请输入正确的固定电话或手机号!");         }             }


网址验证规则

//这是比较全面的验证规则(推荐)function IsURL(str_url){        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          "(:[0-9]{1,4})?" // 端口- :80          "((/?)|" // a slash isn't required if there is no file name          "(/[0-9a-z_!~*'().;?:@&= $,%#-] ) /?)$";        var re=new RegExp(strRegex);        //re.test()        if (re.test(str_url)){            return (true);        }else{            return (false);        }}


完整实例代码

<!doctype html><html>    <head>        <meta charset="utf-8">        <title>验证网址_前端哥</title>        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />    </head>        <style>        #input1 {            width: 500px;        }    </style>    <body>        <h4>验证网址:</h4>        <input id="input1" type="text" placeholder="格式: https://xxx或者http://xxx, 如: https://www.baidu.com">                  <button id="button1" type="button" onclick="handleSearch()">验证</button>                  <button id="button2" type="button" onclick="clearInput()">清空</button>        <h5 id="result1"></h5>        <script type="text/javascript">                        function clearInput() {                document.getElementById('input1').value = ''                const result1 = document.getElementById('result1')                result1.innerText = ''            }                        function handleSearch() {                const tempDate = document.getElementById('input1').value                const result1 = document.getElementById('result1')                const tip = '验证结果:'                if (tempDate === '') {                    result1.innerText = tip   '请输入网址'                } else if (!IsURL(tempDate)) {                    result1.innerText = tip   '格式错误'                } else {                    result1.innerText = tip   '网址合法有效'                }            }						function IsURL(str_url){			        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			          "(:[0-9]{1,4})?" // 端口- :80			          "((/?)|" // a slash isn't required if there is no file name			          "(/[0-9a-z_!~*'().;?:@&= $,%#-] ) /?)$";			        var re=new RegExp(strRegex);			        //re.test()			        if (re.test(str_url)){			            return (true);			        }else{			            return (false);			        }			}                    </script>    </body></html>

邮箱验证规则

function checkEmail(str){  var re = /^(\w-*\.*) @(\w-?) (\.\w{2,}) $/  if(re.test(str)){    alert("正确");  }else{    alert("错误");  }}checkEmail("contact@cnblogs.com");//调用

身份证号码验证规则

function checkId(idcard) {      var Errors = new Array("验证通过!", "身份证号码位数不对!", "身份证号码出生日期超出范围或含有非法字符!", "身份证号码校验错误!", "身份证地区非法!");      var area = {        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: "国外"      }      var retflag = false;      var idcard, Y, JYM;      var S, M;      var idcard_array = new Array();      idcard_array = idcard.split("");      //地区检验      if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];      //身份号码位数及格式检验      switch (idcard.length) {        case 15:          if ((parseInt(idcard.substr(6, 2))   1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2))   1900) % 100 == 0 && (parseInt(idcard.substr(6, 2))   1900) % 4 == 0)) {            ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //测试出生日期的合法性          } else {            ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //测试出生日期的合法性          }          if (ereg.test(idcard)) {            return Errors[0];          }          else {            return Errors[2];          }          break;        case 18:          if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {            ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //闰年出生日期的合法性正则表达式          } else {            ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式          }          if (ereg.test(idcard)) { //测试出生日期的合法性            //计算校验位            S = (parseInt(idcard_array[0])   parseInt(idcard_array[10])) * 7   (parseInt(idcard_array[1])   parseInt(idcard_array[11])) * 9   (parseInt(idcard_array[2])   parseInt(idcard_array[12])) * 10   (parseInt(idcard_array[3])   parseInt(idcard_array[13])) * 5   (parseInt(idcard_array[4])   parseInt(idcard_array[14])) * 8   (parseInt(idcard_array[5])   parseInt(idcard_array[15])) * 4   (parseInt(idcard_array[6])   parseInt(idcard_array[16])) * 2   parseInt(idcard_array[7]) * 1   parseInt(idcard_array[8]) * 6   parseInt(idcard_array[9]) * 3;            Y = S % 11;            M = "F";            JYM = "10X98765432";            M = JYM.substr(Y, 1); //判断校验位            if (M == idcard_array[17]) return Errors[0]; //检测ID的校验位            else return Errors[3];          } else return Errors[2];          break;        default:          return Errors[1];          break;      }    };


转载请注明出处或者链接地址:https://www.qianduange.cn//article/3.html
评论
会员中心 联系我 留言建议 回顶部
复制成功!