无法匹配所需的电话号码格式

时间:2015-06-17 07:17:31

标签: php preg-match

我正在尝试使用PHP中的preg_match来匹配电话号码格式,但我无法取得成功。

我想要匹配的电话号码格式是:

+ 92XXXXXXXXXX

前三个字符应该是+92,其余剩余的应该是10,并且应该是0到9之间的数字。这是我正在尝试但无法匹配的内容:

preg_match('/^[+92]{3}[0-9]{10}$/',$phone_number) )

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用:

<script type="text/javascript">
var url = 'localhost:8080/chartGenerator';
 function myFunction() {
 var docDef={ content: [
    'This is an sample PDF printed with pdfMake',
    {
        image: getBinaryResource(url)
    }
    ]


}
 pdfMake.createPdf(docDef).download('optionalName.pdf');
}

function getBinaryResource(url){
     var req = new XMLHttpRequest();
    req.open("GET", url, false);
    req.overrideMimeType('text/plain; charset=x-user-defined');

    req.send(null);
    if (req.status == 200) {
        return req.responseText.replace(/^data:image\/(png|jpg);base64,/, "");
    } else return null

}

</script>

^(\+92\d{10})$ 中的问题出现在^[+92]{3}[0-9]{10}$中。你正在做的是说[+92]三次匹配。因此,其中包括+,9,2+++999299等案例。

要更正您的模式,请将29+更改为[+92]{3}。因此它将是:

\+92

答案 1 :(得分:0)

您的模式有效,机器人不是文字+92XXXXXXXXXX - 数字代替X它有效。但是,如果始终以+92开头,请将模式更改为:

^\+92[0-9]{10}$

https://regex101.com/r/nG6wI1/1