js正则表单验证(trim封装)

笔记见本地js特效day05,


规律:

座机验证:

匹配电话号码:开头3-4位(首位为0),后面7或8位。

(枢纽城市的座机以0开头。人口多后8位,人口少后7位。)

姓名验证:

只能是汉字,并且字数2-6个之间

[\u4e00-\u9fa5],unicode转中文可以用unescape()打印转换。

QQ验证:

5到11位 开头是不为0的数字。
手机验证:

手机号11位数字,而且有号段限制 13[0-9] 14[57] 15[0-9] 17[1456789] 18[0-9]

邮箱验证:

\w单词字符包括:英文字母,数字,下划线(不包括中划线)姓名的中划线可以出现0次或多次。

封装trim方法:
在做表单验证的时候,我们经常需要检查输入框是否为空,
一个简单的做法是判断value==”“;

但是如果用户输入了空格或者缩进等字符,
这个判断就不起作用了。

PHP有一个很好的函数trim可以去除字符串首尾的空白字符,虽然旧版原生js并没有提供
这个函数,但是我们可以自定义一个函数。

替换掉开头和结尾的空白符
return str.replace(/^\s+|\s+$/g,”“);

<body>
  <script>
  /*获取输入框*/
    var inpQQ =document.getElementById('inp1');
    var inpMobile =document.getElementById('inp2');
    var inpEmail=document.getElementById('inp3');
    var inpTel=document.getElementById('inp4');
    var inpName=document.getElementById('inp5');
    var inp6=document.getElementById('inp6');
//输入框对应的规律
    var regQQ=/^[1-9]\d{4,10}$/;
    var regMobile=/^(13[0-9]|14[57]|15[0-9]|17[1456789]|18[0-9])\d{8}$/;
    var regEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)\.\w+$/;//*号出现0次或多次,中括号外的点号需要转义。表示域名的只有减号和点号
    var regTel=/^\d{2,3}-\d{7,8}$/;
    var regName=/^[\u4e00-\u9fa5]{2,6}$/;
//绑定事件调用函数
    check(inpQQ,regQQ);
    check(inpMobile,regMobile);
    check(inpEmail,regEmail);
    check(inpName,regName);
    check(inpTel,regTel);
/*封装函数:*/
function check(inp,regEx){/*check传参(输入对象,正则规则)*/
  inp.onblur=function () {
       if (regEx.test(this.value)) {
        this.nextSibling.innerHTML="正确";
        this.nextSibling.className="right";
       }else{
        this.nextSibling.innerHTML="错误";
        this.nextSibling.className="wrong";
      }
    }
}

inp6.onblur=function  () {
  if (trim(this.value) === "") {
    this.nextSibling.innerHTML="输入不能为空";
    this.nextSibling.className="wrong";
  }else{
    this.nextSibling.innerHTML="正确";
    this.nextSibling.className="right";
  }
};
function trim(str){
  return str.replace(/^\s+|\s+$/g,"");//打开全局模式,替换完开头的,接着替换结尾。
}
  </script>
</body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值