检查电话号码出错
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 文档。
我用它来检查字符串中是否有 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 文档。