我希望我的用户只能输入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
任何帮助都将受到高度赞赏:)
答案 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,下面的表达式适用于+93
,0093
和07
。
$.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
前缀或 +93
或 0093