2016-04-07 8 views
1

Сейчас я работаю на валидатор пароля на стороне клиента, что гарантирует, что имеет:Исключая «+» и «&» символы из регулярного выражения

  • 8 символов
  • прописной буквы
  • строчной буквы
  • Один номер

теперь мне нужно, чтобы исключить два конкретных символов, + и &. Я не был точно уверен, где вставить это правило в текущее регулярное выражение. Какой был бы лучший подход, основанный на том, что у меня есть сейчас?

/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/ 
+0

Почему бы просто не использовать отдельный RegEx? Если это так, используйте RegEx '(?!. *? [+ &]. *?)' – Druzion

+0

Любопытно, однако, почему вы не предлагаете включить его в текущий RegEx? Чрезмерно многословный? –

+0

Я бы на самом деле не предлагал _not_ разделять его на другое регулярное выражение. В любом случае, где именно вы хотите исключить '+' и '&'? –

ответ

1

Поскольку ваш пример опережение на основе, имеет смысл теперь только добавить отрицательное предпросмотра, чтобы исключить & или +:

/^(?!.*(\+|&))(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$/ 

Demo Here

0

Вам не нужно, чтобы исключить символы + и &. Вам просто нужно упомянуть, что вы хотите, чтобы соответствовать

т.е. [A-Za-z0-9]

Regex:^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9]{8,}$

Regex101 Demo

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

  • Нет связанных вопросов^_^