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

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

阅读 6.5k
5 个回答
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}$/

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

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

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

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");
    };
  };
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题