Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Регулярное выражение для поиска мобильного телефона в тексте

#javascript #регулярные_выражения #nodejs #ecmascript_6


Подскажите регулярное выражение для поиска номера мобильного телефона в тексте.

Номера телефонов вводятся разными пользователями и в совершенно непредсказуемом формате,
например могут участвовать -+()_ пробелы и еще не известно на что хватит фантазии. 

Примеры телефонов:

8 900 000-00-00

+7 (900) 000 00-00

+7 9001112233

89001112233

8(900) 111-2233

и т.д
    


Ответы

Ответ 1



Думаю, примерно так: /(\+7|8)[- _]*\(?[- _]*(\d{3}[- _]*\)?([- _]*\d){7}|\d\d[- _]*\d\d[- _]*\)?([- _]*\d){6})/g console.log( "8 900 000-00-00\ +7 (900) 000 00-00\ +7 9001112233\ 89001112233\ 8(900) 111-2233\ 8 (1234) 12 12 12\ 8 (12-34) 12 12 12\ 8 ( 123 ) 412 12 12".match( /(\+7|8)[- _]*\(?[- _]*(\d{3}[- _]*\)?([- _]*\d){7}|\d\d[- _]*\d\d[- _]*\)?([- _]*\d){6})/g )) .as-console-wrapper.as-console-wrapper { max-height: 100vh }

Ответ 2



Как вариант: /(?:\+|\d)[\d\-\(\) ]{9,}\d/g Начинается с: "+" или цифры Потом может содержать: цифры, "-", "(", ")", пробел. Повторяющиеся 9 и больше раз Заканчивается цифрой https://regex101.com/r/poJz8C/5

Ответ 3



/(?:\+|\d)[\d\-\(\) ]{9,}\d/g так лучше

Ответ 4



[0-9|\ |\-|\(|\)|\+]{10,17}[0-9|\ |\-|\(|\)]

Комментариев нет:

Отправить комментарий