阿富汗电话号码的正则表达式验证

时间:2015-12-19 17:19:06

标签: regex vb.net validation

我希望我的用户只能输入937XXXXXXXX阿富汗国际号码格式的ph#。

到目前为止,我已经编写了下面的代码,但它不能正常工作:

Private Function Valid_Contact_No(ByVal Contact_No As String, ByRef errorMessage As String) As Boolean
    Dim regex As New System.Text.RegularExpressions.Regex("^[937][0-9]{1,11}$")
    ' Confirm there is text in the control.
    If txtContact_no.Text.Length = 0 Then
        errorMessage = "Contact No# is required (allowed format: 937XXXXXXXX)"
        Return False
    End If
    If txtContact_no.Text.Length > 11 Then
        errorMessage = "Contact_No Can not be more than 11 digits (allowed format: 937XXXXXXXX)"
        Return False
    End If
    If (regex.IsMatch(txtContact_no.Text)) Then
        errorMessage = ""
        Return True
    End If
    errorMessage = "A valid Contact No# is required" + ControlChars.Cr
    Return False
End Function

任何帮助都将受到高度赞赏:)

4 个答案:

答案 0 :(得分:2)

b[1]代码应在括号内:

937

括号内的内容是字符集,但您希望"^937[0-9]{0,11}$|7[0-9]{0,9}$" 作为前缀。

您需要使用管道937符号进行正则表达式的更改。

至于字符串长度,匹配正则表达式两次,每次匹配检查字符串的长度。

答案 1 :(得分:0)

  

/(+ 93 | 0093)?0?7 [0-9] {8} /

这是任何这些电话号码的有效正则表达式

+937XXXXXXXX

+9307XXXXXXXX

07XXXXXXXX

7XXXXXXXX

00937XXXXXXXX

009307XXXXXXXX
  

/(+ 93)?0?7 [0-9] {8} /

这是任何这些电话号码的有效正则表达式

+937XXXXXXXX

+9307XXXXXXXX

 07XXXXXXXX

 7XXXXXXXX
  

/ + 937 [0-9] {8} /

这是任何这些电话号码的有效正则表达式

+937XXXXXXXX
  

/(\ 0093)?7 [0-9] {8} /

这是任何这些电话号码的有效正则表达式

00937XXXXXXXX

答案 2 :(得分:0)

我正在使用jQuery,下面的表达式适用于+93009307

$.validator.addMethod("chkMobile", function () {
                return /((\+*)93|0093)?0?7[0-9]{8}/.test(this.value);                
            },"Mobile number is not valid.");
            });

答案 3 :(得分:0)

根据https://en.wikipedia.org/wiki/Telephone_numbers_in_Afghanistan

/^((\+|00)93|0)[2-7]\d{8}$/

我不确定,但在某些情况下会像

/^((\+|00)93|0)?[2-7]\d{8}$/

如果不需要 0 前缀或 +930093