регулярное выражение для запрета комбинации символов - PullRequest
2 голосов
/ 22 мая 2009

Я не очень знаком с использованием чего-либо, кроме очень простого регулярного выражения. У меня есть поле, в котором разрешены все символы, кроме одинарных кавычек, двойных кавычек и вопросительных знаков (я знаю, это не очень хорошая идея, но что я могу сказать. Мои клиенты не будут ограничиваться этим требованием.) Теперь добавлено новое требование. Сочетание символов @ # также не допускается. Мое текущее регулярное выражение: ^ [^? '"] {0,1000} $ Как теперь включить требование @ # в качестве определенной комбинации символов, которая недопустима?

Ответы [ 3 ]

2 голосов
/ 22 мая 2009

Без ограничения длины вы могли бы сделать

^([^"'?@]|@+[^"#'?@])*@*$
0 голосов
/ 22 мая 2009

У Дейва есть проблема - требованием ОП было запретить оригинальные символы и конкретную комбинацию @ #. Кроме того, проще разрешить, если регулярное выражение проверяет ложность в этом случае, а не если оно проверяет истину, поскольку регулярное выражение становится намного проще для чтения. Он также отменяет требование к длине, которое может быть выполнено в качестве отдельного теста, если требуется.

!val.test(/[^"'?]|@#/)
0 голосов
/ 22 мая 2009

Примечание: если просмотр в обратном направлении поддерживается, альтернативный вариант будет:

^(?:(?<!@)#|@(?!#)|[^'"?@#]){0,1000}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...