nixischev
@nixischev
PHP backend developer

JS RegExp: как написать регулярку для определенного количества цифр в строке?

Доброго времени суток!
Задача следующая: есть строка, в ней могут быть различные символы, нужно написать регулярку, которая будет возвращать true при условии, что в строке содержатся 11 цифр.

Мой вариант (не рабочий): /^[0-9]{11}$/i

Помогите, пожалуйста!
  • Вопрос задан
  • 4307 просмотров
Решения вопроса 1
/(.*\d.*){11}/

/(.*\d.*){11}/.test('+7(111)-313-13-11')
true
/(.*\d.*){11}/.test('+7(111)-313-13-1_')
false
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
copist
@copist
Empower people to give
1. Удалить все символы кроме цифр
2. Проверить, что осталось 11 цифр

/\d{11}/.test("+7(111)-313-13-11".replace(/[^\d]/g,''))
Ответ написан
Комментировать
@maylat
Последний вариант не совсем корректен, т.к. будет выдавать true, если цифр будет больше 11. Чтобы этого избежать, нужно добавить символы начала и конца строки:

/^\d{11}$/.test("+7(111)-313-13-11".replace(/[^\d]/g,''))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы