Регулярное выражение для блокировки определенных почтовых доменов от регистрации - PullRequest
2 голосов
/ 19 августа 2011

У меня есть форма регистрации, которую пользователи заполняют своим адресом электронной почты (и паролем).

Используемая мной веб-платформа (Symfony) позволяет мне указать регулярное выражение для адреса электронной почты, который будет «хорошим».to-go ".

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

example1.com  example2.com

Поэтому мне нужно регулярное выражение, которое означает:" принимать все, кроме адресов электронной почты от тех,domains "

Как мне составить регулярное выражение для этого?

Я пытался:

/!(@(examples1\.com|example2\.com)$)/

Но он не делает то, что должен делать.

Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

5 голосов
/ 19 августа 2011

Symfony позволяет вам выполнять как положительные, так и отрицательные валидаторы регулярных выражений .Вы хотите сделать отрицательный.

sfRegexValidator:
  match:        No
  match_error:  Email addresses from that domain are not allowed
  pattern:      /@(examples1\.com|example2\.com)$/si
1 голос
/ 19 августа 2011

Вы можете попробовать один из них (у меня нет опыта в Symfony):

^(?:(?!example1\.com|example2\.com).)*$\r?\n?

Взято из библиотеки Regex Buddy или из следующего:

^(?!.*example1\.com|example2\.com.*).*$

Последняя моя импровизация.

...