#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|\ |\-|\(|\)]
Комментариев нет:
Отправить комментарий