Hai我使用alphanumbercic在jquery中验证密码。它只验证字母,假设我只输入它允许的数字。请指导我
问题
不使用允许的字母
编码
letters = /^[0-9a-zA-Z]+$/;
if(!password.value.match(letters))
{
alert('Password must be alphanumeric');
signupForm.password.focus();
return false;
}
答案 0 :(得分:2)
如果您的密码必须包含所有案例:大写字母,小写字母和数字,那么您需要创建3个正则表达式:
var regexps = [/[A-Z]/, //capital letter
/[a-z]/, //small letter
/\d/ ]; //numeric digit
//This regexp is for assuring that
//password does not contain other symbols than alphanumerics
var nonAlphanumericRegExp = /[^0-9a-zA-Z]/;
然后验证如下:
if(regexps.some(function(value){ return !value.test(password.value); }) ||
nonAlphanumericRegExp.test(password.value)){
alert('Password must be alphanumeric');
signupForm.password.focus();
return false;
}
文档:
答案 1 :(得分:1)
我建议,可能:
/([a-z])([0-9])/
其中包含一组[a-z]
个字母和[0-9]
个数字。
原始表达式中的问题似乎是它只查找一个字符组,这些字符与标识为a-z
,A-Z
的范围的任何部分相匹配或0-9
,对于仅数字,仅字母或数字和字母匹配为真。
以上RegExp修改为:
/(([a-z])+([0-9]))|(([0-9])+([a-z]))/
上面的更改原因是,RegExp将使用a1
({1}}({1}}匹配 1a
和|
。 }})匹配一个或另一个,但如果找不到,则仍然返回or
,如果找到,则返回false
。