我需要一个电话号码字段的验证表达式,例如09-8222333
。
我尝试使用#^0\d([\d]{0,9})([-]{0,9})\d{7}$#
,但它没有起作用。
注:这是一个正则表达式,用于验证电话号码格式。
我需要一个电话号码字段的验证表达式,例如09-8222333
。
我尝试使用#^0\d([\d]{0,9})([-]{0,9})\d{7}$#
,但它没有起作用。
这里:https://regex101.com/r/jiSGUV/1
或者直接复制正则表达式:/^(?:(?:(\+?972|\(\+?972\)|\+?\(972\))(?:\s|\.|-)?([1-9]\d?))|(0[23489]{1})|(0[57]{1}[0-9]))(?:\s|\.|-)?([^0\D]{1}\d{2}(?:\s|\.|-)?\d{4})$/
0\d-\d{7}
是正确的。
你可以尝试使用 \b0\d-\d{7}\b
来避免在 "3209-8222333435" 中匹配到 "09-8222333"。
对于带空格而非破折号的号码,使用 \b0\d[- ]\d{7}\b
,例如 "09 8222333"。
使用 \b((0\d[- ]\d{7})|(0\d[- ]\d{3}[- ]\d{4}))\b
来支持在前三个符号后用破折号或空格分隔的号码,例如 "06 455 3535 或 04 242-3424"。
在 http://regexr.com/ 学习正则表达式,它关于 JavaScript 正则表达式,但同样适用于 C#。 在 http://www.tutorialspoint.com/csharp/csharp_regular_expressions.htm 查看 C# 示例。
针对安卓系统
public static boolean validateTelAndMobileNo(String mobileNo){
//String test = "00911234567891";
return !(!mobileNo.matches("(00972|0|\\+972)[5][0-9]{8}") && !mobileNo.matches("(00970|0|\\+970)[5][0-9]{8}") && !mobileNo.matches("(05[0-9]|0[12346789])([0-9]{7})") && !mobileNo.matches("(00972|0|\\+972|0|)[2][0-9]{7}"));
}
针对VB.net
Public Function validateMobileNo(m As String) As boolean
If String.IsNullOrWhiteSpace(m) Then Return false
return not (Not Regex.IsMatch(m, "(00972|0|\\+972)[5][0-9]{8}") AndAlso Not Regex.IsMatch(m, "(00970|0|\\+970)[5][0-9]{8}") AndAlso Not Regex.IsMatch(m, "(05[0-9]|0[12346789])([0-9]{7})") AndAlso Not Regex.IsMatch(m, "(00972|0|\\+972|0|)[2][0-9]{7}"))
End Function
这将验证以色列和巴勒斯坦的移动电话号码和固定电话号码,您可以轻松调整以删除巴勒斯坦的移动电话和固定电话。
cellular israeli regex
/^05\d([-]{0,1})\d{7}$/
all numbers israel
/^0\d([\d]{0,1})([-]{0,1})\d{7}$/
Update one Regex for all Isrealy numbers
^\+?(972|0)(\-)?0?(([23489]{1}\d{7})|[5]{1}\d{8})$
这个答案基于Wassem的博客文章,你可以在这里阅读。
以下是一个包含以下以色列前缀的以色列电话号码正则表达式:02-09 {7},05 {8},07 {8}:
^0?(([23489]{1}[0-9]{7})|[57]{1}[0-9]{8})+$
(此正则表达式仅适用于以色列地区,对于以色列地区之外的地区,您应该将正则表达式开头的0号码替换为972号码)
像这样应该可以工作:
/[0-9]{2}-[0-9]{7}/
[0-9]{2}
可匹配任何两次恰好为 0
到 9
的数字,-
将匹配单个连字符,然后 [0-9]{7}
将匹配任何七次恰好为 0
到 9
的数字。
您还可以使用 \d
数字标识符来替换您在问题中使用的 [0-9]
。
这包括所有电话号码,包括座机和071、072、073、074、075、076、077前缀:
^\+?(972|0)(\-)?0?(([23489]{1}\d{7})|([71,72,73,74,75,76,77]{2}\d{7})|[5]{1}\d{8})$
regex
标签信息页面,其中包含有关这种常见初学者错误的简要解释。 - tripleee[71,72,73,74,75,76,77]
等同于[,1-7]
。两个类后面的{1}
是不必要的。正则表达式的其余部分看起来过于复杂。 - AdrianHHH