Регулярные выражения в 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, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: