如何验证以色列电话号码

本文关键字:以色列 电话号码 验证 何验证 | 更新日期: 2023-09-27 18:28:43

我需要像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,所以您可以使用以下正则表达式:0'd-'d{7}签入regex101。

'd表示[0-9],{num}表示num次重复

0'd-'d{7}是正确的。

您可以尝试'b0'd-'d{7}'b以避免在"3209-8222333435"中匹配"09-8222333"。

使用'b0'd[- ]'d{7}'b表示带空格的数字,而不是短划线,如"098222333"。

使用'b((0'd[- ]'d{7})|(0'd[- ]'d{3}[- ]'d{4}))'b添加对在前三个符号后面用醚破折号或空格分隔的数字的支持,如"06 455 3535或04 242-3424"。

在上学习regexhttp://regexr.com/这是关于javascript正则表达式的,但对于c也是如此。参见c#示例http://www.tutorialspoint.com/csharp/csharp_regular_expressions.htm.

类似的东西可能会起作用:

/[0-9]{2}-[0-9]{7}/

[0-9]{2}将与0and 9之间的任何数字精确匹配两次,-将与单个连字符匹配,然后[0-9]{7}将与09之间的任何号码精确匹配7次。

您也可以使用问题中的'd数字标识符来替换[0-9]

对于android

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

这将验证以色列和巴勒斯坦的手机号码和电话号码您可以调整以删除巴勒斯坦移动电话和陆地电话。

您可以使用以下regex

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的博客文章,您可以在这里阅读

这是一个以色列电话号码regex,带有以下以色列前缀:02-09{7}、05{8}、07{8}:

^0?(([23489]{1}[0-9]{7})|[57]{1}[0-9]{8})+$

(此正则表达式仅在以色列地区匹配,对于以色列以外的地区,您应该将正则表达式开头的0替换为972个数字)

这包括所有电话号码,包括固定电话和071072073074075076077前缀:

^'+?(972|0)('-)?0?(([23489]{1}'d{7})|([71,72,73,74,75,76,77]{2}'d{7})|[5]{1}'d{8})$