Javascript. Regular expressions. Part one
By request one of my listener I’ll record screencasts devoted to regular expressions in javascript. Regular expressions is powerful tool for search and replace in strings. This lesson is dedicated to useful functions for work with regular expressions.
In this lesson we’ll consider next functions:
- search searches first match in string and return position of founded string or -1 otherwise
- match loosk like search, but return array. Furthermore it can search all matches (not only first). For this purpose you need g flag for full search in string. Also you must notice to i flag. It lets search сase-insensitive strings (“test” and “TEST” are different strings)
- split – this function splites string by divider and returns array.
- replace is powerful funcition to work with regular expressions.
Code lesson (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>
0 Comments