Как сделать международную часть в телефоне необязательной? - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу сделать международный код необязательным в регулярном выражении.

<?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 голосов
/ 24 апреля 2019

Вы пропустили дефис между дополнительной частью и номером телефона:

(?:\+?\d{1,3}-)?[0-9]{3}-[0-9]{3}-[0-9]{4}
//    here __^
...