Подкорректировать regular expression

136
06 сентября 2021, 14:40

Написал вот такую регулярку.

Regex reg = new Regex(@"^\+\d{5,15}$|\(|\)|-");

Предпологая вот такие вводы:

+38(000)000-94-12
+38(000)0009412
8(000)000-94-12
(000)000-94-12

Подскажите, что нужно дописать что бы избавиться от вот таких ошибок ввода:

+38(sds)0949412
+38(096)342-ss-97
Answer 1

Попробуйте такой вариант:

^\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*$
Answer 2
 ^\+?\d*\(\d{3}\)[\d-]+$

fiddle

или, чтобы избежать телефонов типа +(123)456-78-90,

^((\+?\d+)|(\d*))\(\d{3}\)[\d-]+$

fiddle

READ ALSO
Вывод данных разделенных символом из базы

Вывод данных разделенных символом из базы

Есть база данных, которая содержит в себе данные в следующем виде(данные случайные):

103
разница в throw, throw new, throw ex

разница в throw, throw new, throw ex

В чем все таки разница и зачем вообще бросать исключение? Я так понимаю если у нас в где-то вызывается метод в котором потенциально может быть...

114
Альтернативы к Console.Clear(); и к Environment.Exit(0); в C#

Альтернативы к Console.Clear(); и к Environment.Exit(0); в C#

Нужно узнать альтернативы к ConsoleClear(); и к Environment

159