2009-12-07 3 views
0

Я знаю, что это моя вина, и это не сложно, но я не могу найти ответ самостоятельно, поэтому я прошу вас помочь мне построить этот RegEx.RegEx - только один действительный адрес электронной почты

Я стараюсь, чтобы пользователи не вводили несколько адресов электронной почты, поэтому я хотел бы ограничить появление «@» только 1, а также проверить, нет ли запятых (,) ....

Вот упрощенная версия RegEx я уже использую, чтобы проверить ввод ....

\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b 

Как я мог введен раздел, чтобы проверить там нет (@,) на последней части ?

Заранее спасибо

ответ

3

Попробуйте просто добавить ^ и один $

^\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}\b$ 
+0

Спасибо большое, решение Бинер также сделал трюк ... Теперь я все еще ищу, если я могу избежать людей ввести более одного поддомена, как [email protected] ..... но даже если не могу ... сейчас для меня достаточно ... – user226639

7

Вместо того, чтобы использовать регулярное выражение, вы можете split строку на @, и подсчитать, сколько элементов массива имеет выход.

0

Это то, что я в настоящее время использую. Быстрый тест ограничил его единственным электронным письмом для меня.

@"^(?!.*\.\.)[a-zA-Z0-9\w\._%&!'*=?^+-]*@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]*\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$" 
+0

Справа я вижу, что вы не разрешаете + перед @, поэтому вы не следуете стандарту. – tloach

+0

Написание стандартного регулярного выражения для электронных писем ... сложно. – jonnii

+0

taach был прав. Я соответствующим образом отредактировал свое регулярное выражение. Надеюсь, я сделаю это немного лучше каждый раз, когда я навещаю его. Обзор кода - одна из вещей, которая делает stackoverflow ценной. – jac

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