无法匹配所需的 phone 数字格式

Unable to match the required phone number format

我正在尝试在 PHP 中使用 preg_match 匹配 phone 数字格式,但我无法成功。

Phone 我要匹配的数字格式是:

+92XXXXXXXXXX

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

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

有什么建议吗?

谢谢。

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

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

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

您可以尝试使用:

^(\+92\d{10})$

^[+92]{3}[0-9]{10}$ 中的问题在 [+92] 中。您正在做的是说匹配 +,9,2 中的任何一个。因此,包括 +++99929929+ 等案例。

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

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