Я пытаюсь использовать регулярное выражение для проверки адресов электронной почты, одно из правил для адресов электронной почты заключается в том, что они могут иметь необязательное число перед знаком «@». Однако, когда программа получает эту оценку, число никогда не является обязательным.Проверка адреса электронной почты для необязательного номера
я в настоящее время:
Regex.IsMatch(user.EmailAddress, Regex.Escape(basicExpected) + @"^\d{1}?$" + "@email.com")
basicExpected
является string basicExpected = user.GivenName + "." + user.Surname;
поэтому адрес электронной почты должен быть
first.last {опция number}@email.com
В качестве данных dumby два примера ле являются:
Второй John Doe получает 2, потому что есть два человека в Active Directory с именем Джон Доу, таким образом, число является маскирующей разницей между ними. Когда оценка побежал [email protected] будет определяться как ошибочный из-за отсутствия ряда
Update: Я сделал ошибку чтения $
, как ?
так \d?
правильно, я просто продолжал искажения. Я прошу прощения за свою ошибку, и я благодарю вас за сохраняющихся в поиске решения
Remove '^' и '$' якорей. '" \ D?«' достаточно. Также есть период до '@'. Он не соответствует формату. – revo
Я не могу придумать экземпляр, где '{1}' понадобится. Предыдущий символ/группа уже был сопоставлен один раз. @revo правильно относится к якорям, предположим, что они соответствуют началу и концу строки. – chris85
@revo Я переключился на «\ d?», но оставил @, это не требуется в asp? – BlueBarren