我正在尝试创建一个用于密码验证的正则表达式。这是要求。
以下是我到目前为止的表达方式:
^.*(?=.{8,})(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*?_~()-]*).*$
这个表达式主要起作用,除了我需要它只允许5-9子弹。现在,它将允许未指定的字符,例如+=
。
如何修改这个表达式,使其只允许符号5-9,而不允许其他字符?
发布于 2016-06-25 14:00:51
发布于 2016-06-25 14:11:18
您可以将RegExp
分解为离散部分,添加或删除所需的部分,使用Array.prototype.every()
,在函数中包含&& !/[+=]/.test(str)
,以及输入字符串的.length
属性。
var matches = [/[A-Z]/, /[a-z]/, /\d/, /[!@#$%^&*?_~()-]/];
var str = "Ab0!#?~_";
var pw = matches.every(function(re) {
return re.test(str) && !/[+=]/.test(str)
}) && str.length === 8;
console.log(pw);
https://stackoverflow.com/questions/38029249
复制相似问题