frostcox Ответов: 2

Проверка Номера Телефона


Эй, ребята, у меня есть небольшой вопрос, может быть, вы могли бы помочь. Я пытаюсь проверить номер телефона с помощью регулярного выражения, но из-за того, что номер телефона имеет+, я не могу заставить его работать. Я знаю, что лучший способ-это использовать jquery или что-то еще, но это старое приложение.
Case eValidateInput.IsPhoneNumberWithPlus

                       Dim objRegExWithPlus As New System.Text.RegularExpressions.Regex("[+][0-9]{" & InputValue.Length - 1 & "}")
                       Dim objRegExWithNoPlus As New System.Text.RegularExpressions.Regex("[0-9]{" & InputValue.Length & "}")

                       If Not objRegExWithPlus.IsMatch(InputValue) And Not objRegExWithNoPlus.IsMatch(InputValue) Then
                           sValidationMsg = "'" & InputName & "' must be a numeric value"
                       End If


Ура ребята

ridoy

дайте формат телефонного номера для того, что вы пытаетесь сделать..

frostcox

+222 345 2345 будет формат. Спасибо

ridoy

Я вас еще раз спрашиваю..Это + общий для всех номер? и посмотрите,после первых 3 цифр(222) есть пробел,затем еще 3 цифры.Я спрашиваю вас, это пространство является обязательным или необязательным?

2 Ответов

Рейтинг:
2

Karthik J, Coimbatore

Вот что я использую:
он принимает префикс ниже

+91-9898989898 or +919898989898 or 09898989898 

/^(\+91-|\+91|0)?\d{10}$/

Специфично на +91, затем используйте,
/^(\+91)?\d{10}$/


frostcox

Формат моего телефонного номера будет +233 678 7890, так что это позаботится об этом? овации.

frostcox

Но число не всегда будет иметь знак +

Kenneth Haugland

/^(\+91-|\+91/0/91)?\d{10}$/ ?

Рейтинг:
19

Matt T Heffron

Вам нужно только одно регулярное выражение.
Применение условного квантификаторы в регулярных выражений:

Case eValidateInput.IsPhoneNumberWithPlus
  Dim objRegEx As New System.Text.RegularExpressions.Regex("^\+?\s?\d{3}\s?\d{3}\s?\d{4}$")
 
  If Not objRegEx.IsMatch(InputValue) Then
    sValidationMsg = "'" & InputName & "' must be a numeric value"
  End If

Объяснение регулярного выражения: ^\+?\s?\d{3}\s?\d{3}\s?\d{4}$
^       match must start at the beginning of the string
\+?     0 or 1 + character
\s?     0 or 1 whitespace character
\d{3}   exactly 3 decimal digits
\s?     0 or 1 whitespace character
\d{3}   exactly 3 decimal digits
\s?     0 or 1 whitespace character
\d{4}   exactly 4 decimal digits
$       match must end at the end of the string

Это должно совпадать:
+222 345 6789
+222345 6789
+222 3456789
+2223456789
222 345 6789
222345 6789
222 3456789
2223456789


frostcox

Сработало угощение большое спасибо