2015-10-25 3 views
0

Я просил, чтобы обеспечить соблюдение регулярного выражения поведения, которое позволит пользователю заполнить определенное поле под следующим поведением:Regular Expression, чтобы исключить список слов

^[a-z A-Z0-9\s]+$ 

Однако, кроме того, у меня есть список определенных слов, которые пользователю нельзя разрешить вставлять.

Я использовал следующее регулярное выражение:

^((?!WordA|WordB).)[a-z A-Z0-9\s]+$ 

Однако, это отключает любую строку, начиная с этими словами, в то время как мне нужно отключить только строки, которые равны словам.

Любое предложение?

+2

С какой системой вы работаете? Не было бы проще сохранить регулярное выражение, а затем проверить, не совпадает ли поле со значением в черном списке? –

+2

простой помощник по установке: '^ (?! (WordA | WordB) $) [a-z A-Z0-9 \ s] + $' – d0nut

ответ

0

Все, что вам нужно сделать, это сделать отрицательный предпросмотр убедиться, что строки не не после каждого слова, как так:

^(?!(WordA|WordB)$)[a-z A-Z0-9\s]+$ 

Кроме того, ваша часть здесь: [a-z A-Z0-9\s] должно быть действительно [a-zA-Z0-9\s] (без пространство), так как \s соответствует пробелам.

+1

Спасибо! Это прекрасно работает! – Omer

+0

KISS, '^ (?! Word [AB] $) [az A-Z0-9 \ s] + $' –

+0

@AvinashRaj Я знаю, что вы пытаетесь быть умными, и все, кроме WordA и WordB, просто заполнители для других и мы не можем быть уверены, что они могут свести к минимуму. Кроме того, вы также оставили ненужное пространство в символьном блоке. Так много для KISS – d0nut

Смежные вопросы