Регулярные выражения в javascript. Часть 1
По просьбе одного из моих слушателей я запишу уроки, посвященные регулярным выражениям в javascript. Решил разделить эту непростую тему на несколько уроков. Регулярные выражения — мощный инструмент поиска и замены в строках. Данный урок будет посвящен полезным функциям для работы с регулярными выражениями.
В уроке будут рассмотрены следующие встроенные javascript функции:
1. search — ищет первое совпадение в строке, возвращает позицию найденной строки или -1 в случае неудачи
2. match — похожа на функцию search, но возвращает массив. К тому же может искать не только первое совпадение, но и все совпадения в строке. Для этого надо указать флаг g, который как раз и указывает на то, что искать надо все совпадения. Также важно отметить флаг i, который позволяет вести регистронезависимый поиск (строки «тест» и «ТЕСТ» разные).
3. split — функция выполняет разбивку по разделителю и возвращает массив
4. replace — мощная функция для работы со строками регулярными выражениями.
1. search — ищет первое совпадение в строке, возвращает позицию найденной строки или -1 в случае неудачи
2. match — похожа на функцию search, но возвращает массив. К тому же может искать не только первое совпадение, но и все совпадения в строке. Для этого надо указать флаг g, который как раз и указывает на то, что искать надо все совпадения. Также важно отметить флаг i, который позволяет вести регистронезависимый поиск (строки «тест» и «ТЕСТ» разные).
3. split — функция выполняет разбивку по разделителю и возвращает массив
4. replace — мощная функция для работы со строками регулярными выражениями.
Код урока (HTML)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
var exOne = "НаЧИНаем изучать регулярные чин выражения";
var patternOne = /чин/ig;
console.log(exOne.search(patternOne)); //search ищет первое совпадение в строке, возвращает позицию найденной строки.
console.log(exOne.match(patternOne));
//i - флажок для регистронезависимого поиска
//g - флажок для полнотекстового поиска в строке (ищет не только первое совпадение)
var exTwo = "Начинаем изучать регулярные выражения...ЧИН";
var patternTwo = /чин/gi;
console.log(exTwo.split(" "));
console.log(exTwo.replace(" ", ":"));
console.log(exTwo.replace(/ /g, ":"));
console.log(exTwo.replace(/изучать/, "$$"));
console.log(exTwo.replace(/изучать/i, "Сосредоточились и $&"));
console.log(exTwo.replace(/(начинаем) (изучать)/i, "$2 $1"));
var exThree = "Камиль камиль kamil";
function myFunc(match, offset, str) {
//return "Камиль с большой буквы";
return match.toUpperCase();
}
function secondFunc(match, firstParam, secondParam, offset, str) {
return secondParam + " and " + firstParam;
}
console.log(exThree.replace(/камиль/, myFunc));
console.log(exThree.replace(/(камиль) (kamil)/, secondFunc));
</script>
</body>
</html>
Большое спасибо за прекрасные уроки
Здравствуйте, Николай.
Спасибо. Рад, что вам нравится