在jquery中添加自定义验证方法需要正则表达式

时间:2010-02-15 09:49:43

标签: jquery jquery-validate

我想在登录表单上验证密码字段。密码的要求是密码应该是字母和数字的组合。我编写了一个新的验证函数来满足上述要求,并使用validator.addmethod()将其添加到jQuery中。功能代码如下

$.validator.addMethod('alphanum', function (value) {
    return /^[a-zA-Z 0-9]+$/.test(value);
}, 'Password should be Alphanumeric.');

问题是此功能无法正常工作,即它接受字母密码(如 abcdeSD )和数字密码(如 4255345 )和点会为此类输入提供错误消息。

  1. 我的代码中有什么问题吗?
  2. 是书面正则表达式错误,如果是,那么正确的表达式是什么?

3 个答案:

答案 0 :(得分:2)

使用否定前瞻来禁止你不想要的东西:

^(?![a-zA-Z]+$)(?![0-9]+$)[a-zA-Z 0-9]+$

答案 1 :(得分:0)

密码必须包含字母数字

/^[a-zA-Z0-9]+$/

必须包含字母

/[a-zA-Z]+/

必须包含数字

/[0-9]+/

和这些

/^[a-zA-Z0-9]+$/.test(value) && /[a-zA-Z]+/.test(value) && /[0-9]+/.test(value)

答案 2 :(得分:0)

将此表达式用于javascript的密码:

/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%_!]).{8,8})/

您可以在表达式中添加任何特殊字符。

手动添加[@#$%_!]内的字符。