Js 正则表达式

    Pwd: {
        validator: function (value) {
            var pwdRegex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]){6,16}');
            return pwdRegex.test(value);
        },
        message: '密码中必须包含字母、数字、特殊字符,6-16字符!'
    },

var pwdRegex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]){6,16}');
(?=.*[0-9])环形检索,匹配0-9任意数字
(?=.*[a-zA-Z])匹配a-z任意
(?=.*[^a-zA-Z0-9])匹配非(a-z A-Z 0-9) ^是非的意思

(?=.[a-z])
1.这表示一个环视的语法,表示当前位置的后面没有换行且匹配一个字母(从a到z中的一个)
2.(?=exp) 是肯定顺序环视,环视不占位,可以当成是一种条件判定,满足才能匹配
3..
.表示匹配除了换行的任意字符,*是量词,表示0n个,结合起来就是0n个除了换行符的任意字符
4.[a-z] 表示从a到z的集合里匹配一个字母,因为[a-z]后面没加量词,因此默认是一个。

原文地址:https://www.cnblogs.com/kikyoqiang/p/14032931.html