Регулярные выражения в JavaScript часть 2 (replace)

Регулярные выражения в JavaScript иногда содержат группы символов, знаки начала и конца строки, знаки начала и конца слова, фигурные скобки. Разберёмся, что они все означают.

Фигурные скобки

В предыдущей части статьи "Регулярные выражения в 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, '!') ); // результат: "Тише, мыши, кот на кры!"
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: