我有一个jQuery正则表达式,长度为6到255的字母数字,我想检查括号“()”和其他字符,如下划线,逗号,连字符,
/^[A-Za-z0-9,., ,_,-,\(\)]{6,255}$/
但是在括号方面它有问题,它也接受在安全性方面不好的脚本值
正如我在下面的评论中更好地解释,一些字符串是好的:
ABCDEF
ABCDEFG
abcdef
0123456789
a.b.c.d.e
., _-()
一些不正常的字符串
ABC
ABCDEF(
Abcdef(ghi
abcde)fgh
(最后两个不合适,因为括号不匹配)
答案 0 :(得分:0)
/(?=^([^()]*\([^()]*\))*[^()]*$)^[A-Za-z0-9,. _()-]{6,255}$/;
您为,
检查了太多次,-
必须是最后一个字符或被转义(\-
),否则它被用作范围(A-Z
)
我添加了一个预检,以测试所有(
都有)
,所有)
都有(
。它赢得了“(())
(两级括号)
在此处测试:http://jsbin.com/epiroh/8/edit和http://gskinner.com/RegExr/?2uuab