密码正则表达式:"Atleast 1 letter, 1 number, 1 special character and SHOULD NOT start with a special character"
Regex for Password: "Atleast 1 letter, 1 number, 1 special character and SHOULD NOT start with a special character"
我需要密码字段的正则表达式。
要求是:
密码长度必须为8到20个字符
必须至少包含 一个字母和一个数字和一个来自的特殊字符!@#$%^&*()_+
。
不应以特殊字符开头
我试过了
^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+]{8,20}
可以,但是如何限制密码开头的特殊字符?另外,如果您有比上面提到的更有效的正则表达式,请提出建议。
谢谢
很简单,在开头加一个字符class就可以了
^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,19}$
[A-Za-z\d]
确保第一个字符是字母或数字。
[A-Za-z\d!@#$%^&*()_+]{7,19}
将匹配最少 7 个最多 19 个字符。这是必需的,因为他的前导字符 class 将消耗单个字符,使字符串中的字符总数最少为 8 个,最多为 20 个。
$
将正则表达式锚定在字符串的末尾。确保我们的有效密码
后面没有任何内容
var pattern = new RegExp(/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,19}$/);
console.log(pattern.test("!@#123asdf!@#"));
console.log(pattern.test("123asdf!@#"));
console.log(pattern.test("12as#"));
我需要密码字段的正则表达式。
要求是:
密码长度必须为8到20个字符
必须至少包含 一个字母和一个数字和一个来自的特殊字符
!@#$%^&*()_+
。不应以特殊字符开头
我试过了
^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d!@#$%^&*()_+]{8,20}
可以,但是如何限制密码开头的特殊字符?另外,如果您有比上面提到的更有效的正则表达式,请提出建议。
谢谢
很简单,在开头加一个字符class就可以了
^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,19}$
[A-Za-z\d]
确保第一个字符是字母或数字。[A-Za-z\d!@#$%^&*()_+]{7,19}
将匹配最少 7 个最多 19 个字符。这是必需的,因为他的前导字符 class 将消耗单个字符,使字符串中的字符总数最少为 8 个,最多为 20 个。$
将正则表达式锚定在字符串的末尾。确保我们的有效密码 后面没有任何内容
var pattern = new RegExp(/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*()_+])[A-Za-z\d][A-Za-z\d!@#$%^&*()_+]{7,19}$/);
console.log(pattern.test("!@#123asdf!@#"));
console.log(pattern.test("123asdf!@#"));
console.log(pattern.test("12as#"));