0

我有一个 6 到 255 长度的字母数字的 jQuery 正则表达式,我想检查括号“()”和其他字符,如下划线、逗号、连字符、

/^[A-Za-z0-9,., ,_,-,\(\)]{6,255}$/

但它在括号方面有问题,它也接受脚本值,这在安全性方面不好

正如我在下面的评论中更好地解释的那样,一些可以的字符串:

ABCDEF
ABCDEFG
abcdef
0123456789
a.b.c.d.e
., _-()

一些不正常的字符串

ABC
ABCDEF(
Abcdef(ghi
abcde)fgh

(最后两个不行,因为括号不匹配)

4

1 回答 1

0
/(?=^([^()]*\([^()]*\))*[^()]*$)^[A-Za-z0-9,. _()-]{6,255}$/;

您检查了太多次,,并且-必须是最后一个字符或被转义(\-),否则它被用作范围(A-Z

我添加了一个预检查来测试所有(有 a)和所有)有 a (。它不会与(())(两级括号)一起工作

在这里测试:http: //jsbin.com/epiroh/8/edithttp://gskinner.com/RegExr/?2uuab

于 2011-10-14T07:12:44.840 回答