Фигурные скобки
В предыдущей части статьи "Регулярные выражения в JavaScript часть 1 (replace)" мы упоминали об операторах * , + , ?. Иногда этих операторов недостаточно. К примеру, представьте, что нужно составить регулярное выражение, в котором будет повторяющийся символ с частотой от 5 до 10 повторений. А все операторы работают минимум от одного и до бесконечности, без верхнего предела. Тогда в дело вступают фигурные скобки { }. Если поставить такие скобки после повторяемого символа, то внутри можно написать до двух чисел через запятую. Рассмотрим все три возможные комбинации комбинации:- {7} - символ повторяется ровно 7 раз
- {5,7} - символ повторяется от 5 до 7 раз
- {4,} - символ повторяется более 4 раз
var a = 'Мыыышь';
console.log( a.replace(/ы{3}/g, '!') ); // результат: М!шь
console.log( a.replace(/ы{2}/g, '!') ); // результат: М!ышь
console.log( a.replace(/ы{2,4}/g, '!') ); // результат: М!шь
console.log( a.replace(/ы{4,7}/g, '!') ); // результат: Мыыышь
console.log( a.replace(/ы{2}/g, '!') ); // результат: М!ышь
console.log( a.replace(/ы{4}/g, '!') ); // результат: Мыыышь
Группы символов
Есть команды, которые можно использовать в регулярных выражениях, и они указывают на целые группы символов. К примеру:- \s - все символы пробела, включая переносы строк, табуляции и неразрывные пробелы
- \S - все символы, кроме пробела
- \w - все цифры или буквы (кириллица не входит в буквы)
- \W - все символы, кроме цифр и букв (кириллица не входит в буквы)
- \d - все цифры
- \D - все не цифры
var a = 'Тише, мыши, 2 кота на крыше';
console.log( a.replace(/\s/g, '!') ); // результат: "Тише,!мыши,!2!кота!на!крыше"
console.log( a.replace(/\S/g, '!') ); // результат: "!!!!! !!!!! ! !!!! !! !!!!!"
console.log( a.replace(/\w/g, '!') ); // результат: "Тише, мыши, ! кота на крыше"
console.log( a.replace(/\W/g, '!') ); // результат: "!!!!!!!!!!!!2!!!!!!!!!!!!!!"
console.log( a.replace(/\d/g, '!') ); // результат: "Тише, мыши, ! кота на крыше"
console.log( a.replace(/\D/g, '!') ); // результат: "!!!!!!!!!!!!2!!!!!!!!!!!!!!"
Как и в прошлой статье, напомним, что регулярными выражениями необходимо использовать только в том случае, если нет никакого другого способа решения.
Ошибки в регулярных выражениях - это очень частое явление. Поэтому прибегайте к этому инструменту только в самых-самых безвыходных случаях.
Ошибки в регулярных выражениях - это очень частое явление. Поэтому прибегайте к этому инструменту только в самых-самых безвыходных случаях.
Начало и конец строки
Бывают случаи, когда в регулярном выражении необходимо явно указать начало или конец строки. Начало строки можно указать с помощью символа возведения в степень ^, а конец строки значком $. Попробуем сделать это на практике:var a = 'Тише, мыши, кот на крыше';
console.log( a.replace(/..ше/g, '!') ); // результат: "!, мыши, кот на к!"
console.log( a.replace(/^..ше/g, '!') ); // результат: "!, мыши, кот на крыше"
console.log( a.replace(/ше/g, '!') ); // результат: "Ти!, мыши, кот на кры!"
console.log( a.replace(/ше$/g, '!') ); // результат: "Тише, мыши, кот на кры!"