С# Regex для проверки номера телефона

Было бы здорово, если бы кто-то помог мне с Regex для телефонных номеров. Ниже приведены условия:

  • Если присутствует +, то это должен быть первый символ
  • Разрешенные символы - это номера() - и.
  • Минимум 6 номеров и макс. 12
  • (,) и пробел может входить в строку
  • - не должен быть первым и последним символом и не должен появляться сразу после +, если присутствует +.

Вот некоторые допустимые числа:

  • +93483227359
  • +1 703 335 65123
  • 34565464
  • 001 (703) 332-6261
  • +1703.338.6512
  • + 934-83227359
  • (111) 123-4567
  • 111-123-4567

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

Ответ 1

Попробуйте:

^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$

Однако он не обрабатывает подсчет числа

Ответ 2

Не совсем ответ на ваш вопрос, но для тех, кому нужно работать с телефонными номерами, есть .NET-порт Google libphonenumber: libphonenumber-csharp.