| Литерал | Конструктор |
|---|---|
| /data/ | new RegExp(data) |
| лучшая производительность | компилируется в RunTime |
Regexr - online
g : поиск всех совпадений (без флага - только первое совпадение)
("a b 3").match(/\w/)
a
("a b 3").match(/\w/g)
[a,b,3]
i : поиск независимо от регистра
("a B c").match(/[a-z]/gi)
[a, B, c]
("a B c").match(/[a-z]/g)
[a, c]
m : многострочный поиск
/^c/.test("a B\n"
+ "c D")
false
/^c/m.test("a B\n"
+ "c D")
true
y : поиск начиная с символа, который находится на позиции свойства lastindex текущего регулярного выражения.
u : использование юникода в паттерне
A === \u{41}
RegExp('\u{41}', 'u')
.test('abcdABCD')
true
.flags : строка из флагов паттерна
const pattern =
new RegExp("a","ig");
pattern.flags
gi
.global, .ignore, .multiline : true при использовании флага ( или false в противном случае)
.source : возвращает строку c текстом шаблона без // и флагов
.sticky : используется ли флаг y
.unicode : используется ли флаг u
lastIndex : write/read свойство - индекс с которого следует начинать следующее сопоставление
let pattern = /a/g;
pattern.exec('ababab')
pattern.lastIndex;
1
pattern.exec('ababab')
pattern.lastIndex;
3
pattern.exec('ababab')
pattern.lastIndex;
5
/mp/.test("exemple text")
true
RegExp("mp")
.test("exemple text")
true
(new RegExp("mpi"))
.test("exemple text")
false
/(mp)/.exec("exemple"
+ "text exemple text")
["mp", "mp"]
/(ab)/.exec("exemple"
+ "text exemple text")
null
"exemple text exemple"
.search(/mp/)
3
"exemple text exemple"
.search(/mpi/)
-1
("exemple text exemple"
+ "text").match(/(mp)/)
["mp", "mp"]
("exemple text exemple"
+ "text").match(/(mpi)/)
null
("exemple text exemple"
+ " text").replace(
/(mp)/g,
"MP"
)
exeMPle text
exeMPle text
("exemple text exemple"
+ " text").replace(
/(mpi)/g, mpi
"MP"
)
exemple text
exemple text
("кабан кабан")
.replace(
/(ка+)(бан+)/g,
"$2$1"
)
банка банка
("fromCamelToCebabStyle")
.replace(
/([A-Z])/g,
(l) => "-"
+ l.toLowerCase()
)
from-camel-
to-cebab-style
("from-cebab-to-array")
.split(/-/)
[from,cebab,
to,array]
let pattern = /\u0041/u;
pattern.test('aAb')
true
let pattern = /\x8/;
pattern.test('aA0x8b')
let pattern = /\bamp/;
pattern
.exec('test example')
null
pattern
.exec('test ex ample')
amp
let template = /amp\b/;
template
.exec('test example')
null
template
.exec('test examp le')
amp
let pattern = /\Bamp/;
pattern
.exec('test example')
amp
pattern
.exec('test ex ample')
null
let template = /amp\B/;
template
.exec('test example')
amp
template
.exec('test examp le')
null
const pattern = /abc/gi
const str = "xyz abc mnk"
const before
= str.replace(pattern,"$`")
xyz xyz mnk
const after
= str.replace(pattern,"$'")
xyz mnk mnk
const del
= str.replace(pattern,"$+")
xyz mnk
/\d+(?!\.)/.exec("3.124")
124
Regular expression for matching URLs
JavaScript Regular Expressions made easy библиотека
PregX набор стандартных регулярных выражений для USA
Composing regular expressions