PHP正则表达式为黎巴嫩电话号码

app*_*ief 5 php regex

我正在写一个php应用程序,询问人们在黎巴嫩的电话号码.我不希望在输入格式中非常严格,所以我遇到了一些麻烦的验证.

黎巴嫩的电话号码就是这样的.

961 3 123456

961:国家代码.我想要它有或没有它是有效的.

3:区号.这里很棘手.可能的区号是03,70和71.当国家代码存在时,03降低0并变为3而70和71是有或没有国家代码.

123456:电话号码,总是6位数.

这是我正在尝试验证的格式:

961 3 123456
961 70 123456
961 71 123456
03 123456
70 123456
71 123456

这里的空格只是为了清晰起见,我在剥离所有空格和非字母数字字符后进行验证.

就是这样,如果有人可以提供帮助,那就太好了.谢谢

小智 6

我确信有一种更为灵巧的方式,但是

^(961(3|70|71)|(03|70|71))\d{6}$
Run Code Online (Sandbox Code Playgroud)

似乎工作,假设我理解要求.


Cze*_*ogy 5

^((961)?(7(0|1))|(961|0)3)[0-9]{6}$

它是这三个正则表达式的组合:

(961)?(7(0|1))  // 70 and 71 prefixes
(961|0)3        // (0)3 prefix
[0-9]{6}        // main number
Run Code Online (Sandbox Code Playgroud)