“^(?:(+|00)\d{1,3}[-\s.])?(()?\d{3,10}())?(?:[-\s.)]\d{2,7}([-\s.]\d{2,5})?([-\s.]\d{2})?)?$”
Объяснение:
- ^: соответствует началу ввода.
- (?:(+|00)\d{1,3}[-\s.])?: Соответствует дополнительному международному телефонному коду, например + или 00, за которым следуют от одной до трех цифр и разделитель. (-, пробел или точка).
- (()? и ())? : Соответствует необязательной открывающей скобке “(” и необязательной закрывающей скобке “)”.
- \d{3,10}: соответствует от трех до десяти цифр.
- (?:[-\s.)]\d{2,7}([-\s.]\d{2,5})?([-\s.]\d{2})? )?: Соответствует необязательной последовательности, состоящей из разделителя (-, пробела или точки), за которым следуют от двух до семи цифр, необязательного разделителя, за которым следуют от двух до пяти цифр, и еще одного необязательного разделителя, за которым следуют две цифры.
- $: соответствует концу ввода.