Символы отрицания для электронной почты Regex
Я пытаюсь написать основное регулярное выражение для проверки адреса электронной почты. Для этого конкретного случая я пытаюсь убедиться, что введенная строка содержит только буквы, цифры, "." а также "@". Или, другими словами, я уверен, что он не включает такие символы, как £&¬! и т.п.
Я попытался получить версию NOT этого [[:alnum:].@]+, Чтобы он выделил символ, не входящий в этот набор, но я не смог заставить его работать. Я также пробовал символы, не входящие в [\W.@]+ (Символ. Должен быть экранирован, но stackru удаляет \ из этого поста), но \ W все еще выбирает. и символы @.
2 ответа
Вы можете...
- ... соответствовать положительным значениям (ваше регулярное выражение плюс привязки, чтобы убедиться, что оно соответствует всей тестовой строке)
(^[[:alnum:].@]+$
) - ... соответствует негативам, что означает, что в какой-то момент появляется недопустимый символ
([^[:alnum:].@]
)
... и проверьте, не было ли совпадения. В первом случае это означает "хорошо", во втором "провал".
Существуют диалекты регулярных выражений, которые не поддерживают классы символов posix, в этом случае замените [:alnum:]
с 0-9a-zA-Z
,
Существует множество примеров шаблонов регулярных выражений для адресов электронной почты. Вот очень простой / наивный, который допускает только буквенно-цифровые и точки (и один @). Этому не важно, если доменная часть находится в допустимом формате (то есть пропущены такие вещи, как "abc@gmail......com"):
^[A-Za-z0-9.]+@[A-Za-z0-9.]+$