2 KiB
2 KiB
Цифровые квантификаторы {n}
Рассмотрим задачу -- взять телефон вида +7(903)-123-45-67
и найти все числа в нём. То есть, нас интересует результат вида 7, 903, 123, 45, 67
.
Нечто похожее мы уже делали ранее -- мы искали цифры. Для этого было достаточно класса \d
. Но здесь нужно искать числа -- последовательности из 1 или более цифр.
Количество повторений символа можно указать с помощью числа в фигурных скобках: {n}
.
- Точное количество: `{5}`
- Паттерн
\d{5}
обозначает 5 цифр, как иСледующий пример находит пятизначное число.
//+ run alert( "Мне 12345 лет".match (/\d{5}/) ); // "12345"
- Количество от-до: `{3,5}`
- Для того, чтобы найти, например, числа размером от трёх до пяти знаков, нужно указать границы в фигурных скобках: `\d{3,5}`
//+ run alert( "Мне не 12, а 1234 года".match( /\d{3,5}/ ) ); // "1234"
Последнее значение можно и не указывать. Тогда выражение
\d{3,}
найдет числа, длиной от трех знаков://+ run alert( "Мне не 12, а 345678 лет".match( /\d{3,5}/ ) ); // "345678"
В случае с телефоном нам нужны числа - одна или более цифр подряд. Этой задаче соответствует регулярное выражение \d{1,}
:
//+ run
var str = "+7(903)-123-45-67";
alert( str.match( /\d{1,}/g ) ); // 7,903,123,45,67