Проверка формата строки на соответствие регулярному выражению
Нужно проверить соответствует ли строка следующим форматам телефонного номера: +79256878975 or 89265489675.
Для этого написал регулярное выражение вида:
Regex regexTelephone = new Regex(@"[+]?[0-9]{11}");
и с помощью его проверяю
if (regexTelephone.IsMatch(telephone))
{
//...
}
Вот эта часть [+]?, судя по документации, означает, что в начале строки символ "+" может встречаться 0-1 раза, но в моем случае он пропускает строки с 2-мя "+" - "++79226367891".
Ответы (1 шт):
Автор решения: SoulOFTrue
→ Ссылка
В комментариях к вопросу были даны верные подсказки. Оформлю ответом.
Самым правильным ответом, на мой взгляд, является решение @yar85:
Regex regexTelephone = new Regex(@"^\+?\d{11}$");
С другой стороны, моё решение более читаемо:
Regex regexTelephone = new Regex(@"^[+]{0,1}[0-9]{11}");
Для решения изложенной проблемы подходят оба, их можно использовать с одинаковой эффективностью.