$('#reg_submit').click(function () {
var reg_password1 = $('#reg_password1').val();
letters = /([a-z])([0-9])/;
var errorMessage = '';
if ( ! reg_password1.value.match(letters) )
{
errorMessage = "Password must be alphanumeric";
$('#msg_regpass1').html(errorMessage).show();
}
else {
$('#msg_regpass1').html('').hide();
}
});
我使用上面的jquery代码将字母数字验证应用到我的注册页面。但是我得到了与match()相关的javascript错误,某些匹配是未定义的。 任何人都可以建议上述问题的解决方案或请提供一些其他代码来获得上述代码的字母数字验证。 字母模式也不适用于字母数字验证。任何人都建议其他模式
提前致谢
答案 0 :(得分:6)
这个适合我:
var reg_password1 = 'test123#';
var letters = /^[a-zA-Z0-9]+$/;
var result = letters.test(reg_password1);
console.log(result);
答案 1 :(得分:1)
正如你所要求的是一个建议,这是一个开始:你可能想要的正则表达式是/^[a-z\d]+$/i
。只有当正则表达式在字符串中的任何位置包含单个小写字母或数字时,您现有的正则表达式才会匹配;建议说每个角色都必须。
或者,您可以对正则表达式稍加变化:/[^a-z\d]/i
,它与单个非字母数字值匹配。然后调整你的逻辑说:如果我在这里匹配,那么字符串无效。
就match
未定义而言,请阅读regex-related methods in JavaScript。有些属于字符串,有些属于Regexp
类。
答案 2 :(得分:0)
使用
reg_password1.match(letters)
答案 3 :(得分:0)
您的jQuery .val();
方法会返回值,因此更改此行
if(!reg_password1.value.match(letters))
到
if(!reg_password1.match(letters))
我猜你也想要一个稍微不同的正则表达式。
如果所有字符必须是a-z或0-9(不区分大小写),请尝试以下操作:
/^[a-z0-9]*$/i
但是,如果这是真正的密码字段,那么你应该让用户选择$,#,!,@,%_, - ,(,[,),等等符号来启用它们选择一个强密码。 ; - )