2013-09-20 5 views
0

Я безнадежен в регулярных выражениях!Регулярное выражение для международных телефонных номеров

Мне нужно выражение, которое улавливает числа форматов на +441234123123

+ должна оставаться в начале строки, но число протекающие это должно быть 1-9 и любой длины.

+0

Обратите внимание, что на разных языках используются разные форматы для regexp – LtWorf

+0

. Обратите внимание, что номера телефонов могут включать в себя 0. –

ответ

0

Регулярное выражение, соответствующее вашему описанию, довольно просто: \+[0-9]*.

+0

Я полагаю, я должен добавить, что я предполагаю, что '1-9' в вопросе опечатка, поскольку номер телефона определенно может содержать '0'. –

3

Поскольку нет никаких +0 телефонов:

^\+[1-9][0-9]*$ 

если вы хотите точно 1-9 (без нулей на все, что странно для телефонных номеров), затем:

^\+[1-9]+$ 

И (спасибо к комментариям ниже) - если вы хотите захватить свой телефон (например, строка может содержать что-то еще), то:

\b(\+[1-9]+)\b 
+0

Я думаю, что это, вероятно, подходящий ответ, хотя он отличается от спецификации OP, в которой говорится, что «числа ... должны быть 1-9 и любой длины». (Я думаю, что это проблема на стороне OP, а не на этом ответе.) –

+1

@JoshuaTaylor получил вашу точку зрения, отредактировал - спасибо –

+0

Не используйте^и $, потому что OP не указал, что номер телефона является единственным элемент на линии. – NRitH

1

\+[1-9]+

Это действительно довольно простой вариант. Я предлагаю вам взглянуть на один из многих обучающих онлайн (например, this).

Также посмотрите на regexpal, чтобы помочь с их созданием.

+0

Это точный ответ на то, что указано OP , И его неясно, если только содержимое строки равно + и \ d. – sln

Смежные вопросы