您将如何修改此正则表达式以仅允许使用字母和数字?
我认为通过必须至少包含2个大写字母,小写字母和数字,可以将表达式限制为仅这些类型的字符。但是它允许不需要的字符,例如波浪号等。
/^[\s]*((?=([^\s]*\d){2,})(?=([^\s]*[a-z]){2,})(?=([^\s]*[A-Z]){2,})[^\s]{8,16})[\s]*$/
最佳答案
这是使用几根针即可完成的方法。 fiddle
alert( verify('AbcdeFghij123') );
alert( verify('Abcdeghij123') ); // Only 1 capital
alert( verify('AbcdeFghij') ); // No numbers
alert( verify('ABCDEF123') ); // No lowercase
alert( verify('Abc~~ghij123') ); // Tilde
alert( verify('') ); // Blank
function verify(pass) {
return /^[A-Za-z0-9]+$/.test(pass)
&& /[A-Z][^A-Z]*[A-Z]/.test(pass)
&& /[a-z][^a-z]*[a-z]/.test(pass)
&& /[0-9][^0-9]*[0-9]/.test(pass);
}
如果要将大小限制在X和Y之间,请用
/^[A-Za-z0-9]+$/
替换/^[A-Za-z0-9]{X,Y}$/
。很简单,是吗?关于javascript - 进一步修改密码的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8461090/