检查电话号码出错

check telephone number goes wrong

我用它来检查字符串中是否有 06 数字。 06号总是10号。

$string = "This is Henk 0612345678";

$number = preg_replace('/[^0-9.]+/', '', $string);

echo $number;

这很好用,但是当字符串是

$string = "This is 12Henk 0612345678";

号码是120612345678 我不想将 12 放入其中,但字符串中的 12 并不总是相同的。 我怎样才能只检查 10 位数字?

谢谢

这对你有帮助

/([ \w]+)(06[0-9.+]{8})/

第一个()是06之前的整个字符串,第二个()是以06开头的8位数字

解决方案不包括 06 在数字序列之前的情况

与其替换所有不是您想要的东西,不如尝试用preg_match搜索您想要的东西。

这样更容易具体化:

  • 数字始终以 06 开头,因此您可以在正则表达式中对其进行硬编码
  • 后面紧跟 8 位数字,您可以将其指定为 [0-9]{8}\d{8}(“d”代表“数字”)
  • 为了避免匹配 更长的 数字,您可以用 \b 将其括起来以表示“分词”

放在一起,你得到:

preg_match('/\b06\d{8}\b/', $string, $matched_parts);

这不会改变 $string,但会在 $matched_parts 中为您提供一个包含匹配部分的数组;有关详细说明,请参阅 preg_match 文档。