регулярное выражение для буквенно-цифровых с круглыми скобками () - PullRequest
0 голосов
/ 14 октября 2011

У меня есть регулярное выражение jQuery для буквенно-цифровых символов от 6 до 255, и я хочу проверить скобки "()" и другие символы, такие как подчеркивание, запятая, дефис,

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

, но что-то не такс ним в скобках, и он также принимает значения скрипта, что не очень хорошо с точки зрения безопасности

Как я объясню лучше в комментарии ниже, некоторые строки в порядке:

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

Некоторые строки, которые не в порядке

ABC
ABCDEF(
Abcdef(ghi
abcde)fgh

(последние две не в порядке, потому что скобки не совпадают)

1 Ответ

0 голосов
/ 14 октября 2011
/(?=^([^()]*\([^()]*\))*[^()]*$)^[A-Za-z0-9,. _()-]{6,255}$/;

Вы проверяете слишком много раз для ,, и - должен быть последним символом или быть экранированным (\-), в противном случае он используется как диапазон (A-Z)

Я добавил предварительную проверку, чтобы проверить, что все ( имеют ), а все ) имеют (.Это выиграет 'работа с (()) (два уровня скобок)

Тест здесь: http://jsbin.com/epiroh/8/edit и http://gskinner.com/RegExr/?2uuab

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...