Это регулярное выражение соответствует всем пример вы дали нам (проверено https://fr.functions-online.com/preg_match_all.html)
/^\(\+\d+\)[\/\. \-]\(?\d{3}\)?[\/\. \-][\d\- \.\/]{7,11}$/m
^
Match начало строки или новой строки.
Чтобы соответствовать (+1) и (+61): \(\+\d+\)
: Знак плюс и круглые скобки должны быть экранированы, так как они имеют особое значение в регулярном выражении. \d+
Подставка для любых цифр (\d
) характер и означает плюс один или более (плюс можно заменить {1,2}
)
[\/\. \-]
Этот матч точка, пробел, слэш и дефис ровно один раз.
\(?\d{3}\)?
: знак вопроса предназначен для необязательной круглой скобки (? = 0 или 1 раз). Он ожидает три цифры.
[\/\. \-]
же, как на стадии 3
[\d\- \.\/]{7,11}
: Ожидать цифры, дефис, пробел, точку или косую черту между 7 и 11 раз.
$
Матч конец строки или конец строки
m
модификатор позволяет каретку (^) и знак доллара ($) комбинацию, чтобы соответствовать разрыв строки. Удалите это, если вы хотите, чтобы этот символ соответствовал только началу и концу строки.
Разрезы - это разделитель для этого регулярного выражения (есть и другие символы, которые вы можете использовать).
Должен признаться, мне не нравится последняя часть регулярного выражения, так как не гарантирую, что у вас есть как минимум 7 цифр.
Было бы, вероятно, лучше, чтобы удалить все разделитель (на примере с PHP функции str_replace
) и иметь дело только с скобкой и числом с этим регулярным выражением
/(\(\+\d+\))(\(?\d{3}\)?)(\d{3})(\d{4})/m
Обратите внимание, что в последнем регулярном выражении я использовал 4 захвата группы для соответствия четырехзначной части номера телефона. Это регулярное выражение хранит скобки и знак плюса первой группы и необязательную скобку второй группы.Для того, чтобы оставить только цифры группы, вы можете использовать это регулярное выражение:
/\(\+(\d+)\)\(?(\d{3})\)?(\d{3})(\d{4})/m
Примечания: Эти группы для форматирования номера телефона после проверки его. Вероятно, вам лучше сохранить весь свой номер телефона в своей базе данных в том же формате.
Ну, вот иная возможность, которую вы можете использовать.
Замечание: Эти регулярные выражения должны быть совместимы со всеми механизмами регулярных выражений, но рекомендуется указать, с каким языком вы работаете, потому что механизм регулярных выражений не имеет отношения к продвинутой/необычной функции.
К примеру, внешний вид не поддерживается javascript и .Net, что позволяет использовать более мощный контроль над lookbehind, чем PHP.
Держите меня в курсе, если вам нужна дополнительная информация