用于匹配电话号码的Php preg_匹配代码

用于匹配电话号码的Php preg_匹配代码,php,preg-match,Php,Preg Match,preg_match()在+(91)111 11111 代码是: $number = +91 111 11111; if (preg_match('/^\s*(?:\+?(\d{1,3}))?[(]\+[)]?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*$/', $number)) { echo "True"; } 它正在工作。但不在+91(111)11111中工作 您可能想重新访问您的reg

preg_match()
+(91)111 11111

代码是:

$number = +91 111 11111;

if (preg_match('/^\s*(?:\+?(\d{1,3}))?[(]\+[)]?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*$/', $number)) {
   echo "True"; 
}
它正在工作。但不在
+91(111)11111中工作

您可能想重新访问您的
regex
,或者尝试以下方法:


您可能想重新访问您的
regex
,或者尝试以下方法:


你是想把它弄成雷克斯吗?好像你在告诉我,
$number
不应该是字符串,这就是为什么你从那里开始(?)你想把它变为lex吗?好像你在说,
$number
不应该是字符串,这就是为什么你从那里开始(?)它在+(91)111 11111中工作。但它也适用于1234500000000000000。这不是电话号码。我想检查它是否是电话号码。@faziltm也许你可以将regex改为:`$rx='#(^[\+\d][\d]{1,2})*(\s)(()?([\d\s]*?)())(\s)([\d\s]*?)$`它在+(91)11111中工作。但它也适用于1234500000000000000。这不是电话号码。我想检查它是否是电话号码。@faziltm也许你可以将regex改为:`$rx='#(^[\+\d][\d]{1,2})*(\s)(()?([\d\s]*?)())(\s)([\d\s]*?)$`
<?php

    if (preg_match('#(^[\+\d][\d]{1,2})?(\()?([\d\s]*)?(\))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*$#', $number)) {
        echo "True";
    }
<?php

    // MATCHES: "+91 (111) 11111" OR "+91 111 11111" OR "91 (101) 23454" 
    // OR "+(91) (101) 23454" 
    // BUT NOT "1234500000000000000000000" OR "+121(121)38778" 
    $rx     = '#(^[\+\d](\()?[\d]{1,2})*(\))?(\s)(\()?([\d\s]*?)(\))?(\s)([\d\s]*?)$#';
    if (preg_match($rx, $number)) {
        //echo "True";
    }