前端设计

匹配数字和字母密码的正则表达式

2021-05-14

网站用户注册功能的密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在6-20位之间。该如何写呢?

1、不能全部是数字     /^\d+$/

2、不能全部是字母     /^[a-z]+$/i

3、可以包含数字、字母,也可以只为字母或只为数字    /^[A-Za-z0-9]+$/

4、必须是数字或字母

     只要能同时满足上面3个要求就可以了,写法如下:

     /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/

5、包含中文、英文、数字、下划线,并且必须包含中文的正则表达式

    /^[a-zA-Z0-9]{0,}[\u4e00-\u9fa5]{2,}[a-zA-Z0-9_]{0,}$/


注释一下:

  ^ 匹配一行的开头位置

  (?![0-9]+$) 预测该位置后面不全是数字

  (?![a-zA-Z]+$) 预测该位置后面不全是字母

  [0-9A-Za-z] {8,16} 由8-16位数字或这字母组成

  $ 匹配行结尾位置


代码:

   /*** 检测密码强度,必须由数字与字母组合,至少6位的字符串。*/

   

$.checkPwd = function(v){

    v=$.trim(v);

    if(v.length<6||v.length>30){

     return "密码长度为6-30位";

      }

      if(/^\d+$/.test(v)){

  return "全数字";

      }

      if(/^[a-z]+$/i.test(v)){

return "全字母";

      }

      if(!/^[A-Za-z0-9]+$/.test(v)){

return "只能含有数字有字母";

      }

      return "正确";

   };