强制使用小写和小写符号的Jquery验证

强制使用小写和小写符号的Jquery验证,jquery,regex,validation,Jquery,Regex,Validation,我成功地失败了。我正在尝试允许使用小写字符和符号。我不太擅长正则表达式,所以请随意大笑 $.validator.addMethod('lowercasesymbols', function(value) { return value.match(/^[a-z-"?=.*[!@# $%&\/=?_.,:;\\-]"]+$/); }, 'You must use only lowercase letters and symbols in your entry'); 谢谢你的帮助。就

我成功地失败了。我正在尝试允许使用小写字符和符号。我不太擅长正则表达式,所以请随意大笑

$.validator.addMethod('lowercasesymbols', function(value) {
    return value.match(/^[a-z-"?=.*[!@# $%&\/=?_.,:;\\-]"]+$/);
}, 'You must use only lowercase letters and symbols in your entry');

谢谢你的帮助。

就像你在评论中说的,“我只是想限制数字和大写字母。”

为此,只需对其进行测试:

$.validator.addMethod('lowercasesymbols', function(value) {
    return value.match(/^[^A-Z0-9]+$/);
}, 'You must use only lowercase letters and symbols in your entry');
这样,你就可以匹配任何不是A-Z或0-9的东西。如果以这种方式结束,则字符串不包含这些内容

这样,您还可以使用任何希腊字母(包括大写字母)、重音字母(包括大写字母)等。因此,这可能不是您想要的。如果你只是想限制大写字母和数字,那么就应该使用它

为了只允许您提到的符号,您仍然需要退出方括号(
\[
\]
),这会导致问题。此外,您的范围内有多个相同的字符,我已删除这些字符。最后,您应该始终将破折号保持在范围的末尾,否则它将匹配,就好像它是从角色之前到角色之后的一个范围。在您的情况下,它试图将字符
\
匹配到
]
,这是行不通的。这是我清理的结果:

$.validator.addMethod('lowercasesymbols', function(value) {
    return value.match(/^[a-z\[!@# $%&*\/?=_.,:;\\\]"-]+$/);
}, 'You must use only lowercase letters and symbols in your entry');

我搞不懂你的regexp在做什么。为什么在
[…]
字符类中有同一字符的多个副本?您有两次
=
。它允许使用其他字符的原因是因为
*
。这与任何内容都匹配。返回值。匹配(/^[a-z-“?=![!@$%&\/=?,:;\-]“]+$/);我把旧的贴上了。我只是试图限制数字和大写字母。请尝试使用
/^[a-z!@$%^\/=?,:;\\-]+$/
。关于这一点,额外的
[]
有什么用?@DouglasCottrell如果粘贴错误,请编辑您的问题。