搜尋

首頁  >  問答  >  主體

JavaScript的密码规则的正则表达式

要求:长度为6-10,包含至少1个大写字母,至少1个小写字母,至少1个数字,不能含有中文字符、不能含有除字母及数字以外的英文字符

大家讲道理大家讲道理2774 天前372

全部回覆(5)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-11 11:54:05

    var reg = /^(?![a-zA-Z]{6,10}$)(?![a-z0-9]{6,10}$)(?![0-9A-Z]{6,10}$)[a-zA-Z0-9]{6,10}$/;
    console.log(reg.test('12abC'));
    console.log(reg.test('aaaaaA'));
    console.log(reg.test('aaaaa1'));
    console.log(reg.test('aaa1A中'));
    console.log(reg.test('aaa1A*'));
    // 全 false
    

    或者用相反的思路:

    var reg2 = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{6,10}$/

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-11 11:54:05

    能,但是如果写在一句,你就没法针对性给出错误提示了。

    正则表达式被滥用,可真不是好事

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-11 11:54:05

    分步截取,并与运算符搭配使用

    commit.onclick=function (){
        var AZpass = /[A-Z]/.test(demo.value);
        var azpass = /[a-z]/.test(demo.value);
        var dpass = /\d/.test(demo.value);
        var wordpass = /[^\w]/.test(demo.value);
        var spacepass = /\s/.test(demo.value);
        var lengthpass = /^\w{6,10}$/.test(demo.value);  //字符在6至10之间
        var pass = AZpass && azpass && dpass && (!wordpass) && (!spacepass) && lengthpass;
        console.log(lengthpass);
        if(!pass){
          console.log("The infomation you entered is not compliant");
        }else{
          console.log("The infomation you entered is validated successfully");
        };
      };

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 11:54:05

    拿来主义。。。。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-11 11:54:05

    不限制长度么。。。
    限制符号么?

    回覆
    0
  • 取消回覆