我如何将电话中的国际部分设为可选

时间:2019-04-24 03:38:06

标签: php preg-match

我想在正则表达式中使国际代码为可选。

<?php
$phone = 'abcd +89-800-123-4567 efgh';
$string = preg_replace("/([\+][0-9]{1,6}-[0-9]{3}-[0-9]{3}-[0-9]{4})/", '<a href="tel:$1" id="phone">$1</a>', $phone);
echo $string;
?>

如果我只尝试800-123-4567,它也应该可以工作。我使用?尝试了可选组:但是由于某些原因,它不起作用。这是我的示例代码

(?:\+?(\d{1,3}))?([0-9]{3}-[0-9]{3}-[0-9]{4})

1 个答案:

答案 0 :(得分:0)

您错过了可选部分和电话号码其余部分之间的连字符:

$ pru_49297910
[3/1][39/0][54/1]