URL-1 источник — Регулярные выражения developer.mozilla
URL-2.1 источник (Регулярные выражения Javascript-джедай #28)
URL-2.2 источник (Регулярные выражения Javascript-джедай #29)
Сайт для отладки регулярных выражений


ссылка на статью в моем блоге
Регулярная строка пишиться между символами / /
Послених пишиться флаг в любой последовательности, важно лиш есть он или нет.
Например:
/a.{2,10}e/g
если флаг установлен, то
g (глобально) — поиск будет искаться много раз, а иначе только один раз.
i (верхний или нижний регистор не имеет знагение) — небудет разницы символ в верхнем или нижнем регистре.
m (мульти) — это значит что начало и конец есть у каждой строки, а иначе начало и конец только в начале всего текта и в его конце. Этот флаг важен когда в реглярном выражении используеться символ «^» или «$».
y Experimental«липкий» поиск; сопоставление в целевой строке начинается с индекса, на который указывает свойство lastIndex
этого регулярного выражения (и не пытается сопоставиться с любого более позднего индекса).
? — этот символ в том числе делает повторения жадными? Без знака «?» будет не жадными. Жадное значит поис продолжаеться до первого возможного символа, а не жадное до максимально последнего на строке.
? в после скобок () указывает что строка может быть а может и не быть, фактически это значит тоже самое что и {0,1}
Наприме:



Нужно еще учитывать что мы имеем запоминающую группу

и чтобы ее отключить нужно поставить после скобки (?:
тогда
/java(?:script)?/gim

Например:
для стори поиска «your career. Maybe you wante t travel internationally or study abroad.»
при регулярной строке /a.{2,10}e/g
Результат:

/a.{2,10}?e/g
Результат:

Вперед смотрящее утверждение и назад смотрящее утверждение.
это вперед смотрящее утверждение
(?:x)
x(?=y)
x(?!y)
это назад смотрящее утверждение — в языке «» такой возможности не предусмотрено.
Запоминающие группы.
Например чтобы найти все email-ы в тексте можно написать такое регулярное выражение.
/(\b\w+)@(\w+.\w+\b)/gim

регулярное выражение чтобы находить URL
/(?:(\w+):\/\/)?([^/]+)(.+)?/gim
//https://youtu.be/CAXBO9jOXFA?t=358
var input = document.getElementsByClassName(‘input’)[0],
output = document.getElementsByClassName(‘output’)[0],
voc = {
name: ‘Sorax’,
title: ‘JavaScript Tuts’,
resource: ‘YouTube’
};
input.addEventListener(‘keyup’, function(){
output.innerHTML = this.value.replace(/{{(\w*)}}/g, «$1«);
}, false);
$1 — значение в первом запомнинании, т.е. то что в первых скобках ()
Это регулярное выражение
!!! Важный момент
_1.1. Прежде всего при использовании метода «.exec» нужно чтобы для регулярного выражения был задан флаг «g» иначе индекс не будет меняться.
_1.2. строку «c_exec = MyRe.exec(content)» эта строка должна повторяться каждый раз чтобы получить обносленное значение инжекса (lastIndex) иначе значение быдет на момент присвоения, посколку в переменной (c_exec) копия данных, а изменения происходят в обекте (MyRe.exec(content)).
<div> <span id="sentence"> 123 If you’ve picked up this book, chances. _ If s </span> </div> <script> MyRe = /If/g c_exec = MyRe.exec(content) console.log("c_exec_1: ", c_exec); console.log("MyRe_1.lastIndex: ", MyRe.lastIndex); c_exec = MyRe.exec(content) console.log("c_exec_2: ", c_exec); console.log("MyRe_1.lastIndex: ", MyRe.lastIndex); c_exec = MyRe.exec(content) console.log("c_exec_3: ", c_exec); console.log("MyRe_1.lastIndex: ", MyRe.lastIndex);
_2. в строке «», должа быть занятая «,» а не «+» иначе в консоль будет выведен не масив с данными, а лишь одно его первое значение.
MyRe = /If/g c_exec = MyRe.exec(content) console.log("c_exec_1: " + c_exec); console.log("MyRe_1.lastIndex: ", MyRe.lastIndex); c_exec = MyRe.exec(content) console.log("c_exec_2: ", c_exec); console.log("MyRe_1.lastIndex: ", MyRe.lastIndex);

_3. «MyRe.lastIndex = 2» так можно изменить индекс начиная с которогго будет производиться поиск подстроки.