jquery字母数字validation

$('#reg_submit').click(function () { var reg_password1 = $('#reg_password1').val(); letters = /([az])([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代码将字母数字validation应用到我的注册页面。但是我得到了与match()相关的javascript错误,匹配是不确定的。 任何人都可以建议上述问题的解决方案或请提供一些其他代码,以获得上述代码的字母数字validation。 字母模式也不适用于字母数字validation。任何人都建议其他模式

提前致谢

这个适合我:

 var reg_password1 = 'test123#'; var letters = /^[a-zA-Z0-9]+$/; var result = letters.test(reg_password1); console.log(result);​ 

DEMO

正如你所要求的是一个建议,这是一个开始:你可能想要的正则表达式是/^[az\d]+$/i 。 只有当正则表达式在字符串中的任何位置包含单个小写字母或数字时,您现有的正则表达式才会匹配; 建议说每个角色都必须。

或者,您可以对正则表达式稍加变化: /[^az\d]/i ,它匹配单个非字母数字值。 然后调整你的逻辑说:如果我在这里匹配,那么字符串无效。

对于未定义的match ,请阅读JavaScript中与正则表达式相关的方法 。 有些属于字符串,有些属于Regexp类。

使用

 reg_password1.match(letters) 

你的jQuery .val(); 方法将返回值,从而更改此行

 if(!reg_password1.value.match(letters)) 

 if(!reg_password1.match(letters)) 

我猜你也想要一个稍微不同的正则表达式。

如果所有字符必须是az或0-9(不区分大小写),请尝试以下操作:

 /^[a-z0-9]*$/i 

但是,如果这是真正的密码字段,你应该让用户选择$,#,!,@,%_, – ,(,[,),]等符号,以便他们选择一个强密码。 😉