Baseline Widely available *
СводкаÐонÑÑÑÑкÑÐ¾Ñ RegExp
ÑоздаÑÑ Ð¾Ð±ÑÐµÐºÑ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑекÑÑа Ñ Ñаблоном.
Ðведение в Ñо, ÑÑо пÑедÑÑавлÑÑÑ Ñобой ÑегÑлÑÑнÑе вÑÑажениÑ, ÑиÑайÑе в главе «РегÑлÑÑнÑе вÑÑажениÑ» в ÑÑководÑÑве по JavaScript.
ÐнÑеÑакÑивнÑй пÑимеÑconst regex1 = /\w+/;
const regex2 = new RegExp("\\w+");
console.log(regex1);
// Expected output: /\w+/
console.log(regex2);
// Expected output: /\w+/
console.log(regex1 === regex2);
// Expected output: false
СинÑакÑиÑ
ÐÐ¾Ð·Ð¼Ð¾Ð¶Ð½Ñ ÐºÐ°Ðº лиÑеÑалÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ, Ñак и запиÑÑ ÑеÑез конÑÑÑÑкÑоÑ:
/pattern/flags new RegExp(pattern, flags)ÐаÑамеÑÑÑ
pattern
ТекÑÑ ÑегÑлÑÑного вÑÑажениÑ.
flags
ÐÑли опÑеделÑн, Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð»ÑбÑÑ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°ÑÐ¸Ñ Ð½Ð¸Ð¶ÐµÑледÑÑÑÐ¸Ñ Ð·Ð½Ð°Ñений:
g
глобалÑное ÑопоÑÑавление
i
игноÑиÑование ÑегиÑÑÑа пÑи ÑопоÑÑавлении
m
ÑопоÑÑавление по неÑколÑким ÑÑÑокам; ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð°Ñала и конÑа (^ и $) наÑинаÑÑ ÑабоÑаÑÑ Ð¿Ð¾ неÑколÑким ÑÑÑокам (Ñо еÑÑÑ, пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑопоÑÑавление Ñ Ð½Ð°Ñалом или конÑом каждой ÑÑÑоки (ÑÑÑоки ÑазделÑÑÑÑÑ Ñимволами \n или \r), а не ÑолÑко Ñ Ð½Ð°Ñалом или конÑом вÑей вводимой ÑÑÑоки)
y
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ
«липкий» поиÑк; ÑопоÑÑавление в Ñелевой ÑÑÑоке наÑинаеÑÑÑ Ñ Ð¸Ð½Ð´ÐµÐºÑа, на коÑоÑÑй ÑказÑÐ²Ð°ÐµÑ ÑвойÑÑво lastIndex
ÑÑого ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (и не пÑÑаеÑÑÑ ÑопоÑÑавиÑÑÑÑ Ñ Ð»Ñбого более позднего индекÑа).
СÑÑеÑÑвÑÐµÑ Ð´Ð²Ð° ÑпоÑоба ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð±ÑекÑа RegExp
: лиÑеÑалÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¸ иÑполÑзование конÑÑÑÑкÑоÑа. ÐÑи запиÑи ÑÑÑок паÑамеÑÑÑ Ð² лиÑеÑалÑной запиÑи не иÑполÑзÑÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÐºÐ°Ð²ÑÑек, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº паÑамеÑÑÑ ÑÑнкÑии-конÑÑÑÑкÑоÑа иÑполÑзÑÑÑ ÐºÐ°Ð²ÑÑки. Так ÑÑо ÑледÑÑÑие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑоздаÑÑ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñе ÑегÑлÑÑнÑе вÑÑажениÑ:
/ab+c/i;
new RegExp("ab+c", "i");
ÐиÑеÑалÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ð¾Ð±ÐµÑпеÑÐ¸Ð²Ð°ÐµÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¸Ñ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñи вÑÑиÑлении вÑÑажениÑ. ÐÑполÑзÑйÑе лиÑеÑалÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ ÐµÑли ÑегÑлÑÑное вÑÑажение бÑÐ´ÐµÑ Ð½ÐµÐ¸Ð·Ð¼ÐµÐ½Ð½Ñм. ÐапÑимеÑ, еÑли Ð²Ñ Ð¸ÑполÑзÑеÑе лиÑеÑалÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð´Ð»Ñ ÐºÐ¾Ð½ÑÑÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑегÑлÑÑного вÑÑажениÑ, иÑполÑзÑемого в Ñикле, ÑегÑлÑÑное вÑÑажение не бÑÐ´ÐµÑ Ð¿ÐµÑекомпилиÑоваÑÑÑÑ Ð½Ð° каждой иÑеÑаÑии.
ÐонÑÑÑÑкÑÐ¾Ñ Ð¾Ð±ÑекÑа ÑегÑлÑÑного вÑÑажениÑ, напÑимеÑ, new RegExp('ab+c')
, обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¸Ñ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑÐµÐ¼Ñ Ð²ÑполнениÑ. ÐÑполÑзÑйÑе ÑÑнкÑиÑ-конÑÑÑÑкÑоÑ, еÑли Ð²Ñ Ð·Ð½Ð°ÐµÑе, ÑÑо Ñаблон ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð¼ÐµÐ½ÑÑÑÑÑ Ð¸Ð»Ð¸ еÑли Ð²Ñ Ð½Ðµ знаеÑе Ñаблон и полÑÑаеÑе его из внеÑниÑ
иÑÑоÑников, напÑимеÑ, из полÑзоваÑелÑÑкого ввода.
ÐÑи иÑполÑзовании ÑÑнкÑии-конÑÑÑÑкÑоÑа Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ иÑполÑзоваÑÑ Ð¾Ð±ÑÑнÑе пÑавила ÑкÑаниÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑÑÑÐ¾ÐºÐ°Ñ (пÑедваÑÑÑÑ ÑпеÑиалÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ñимволом обÑаÑного ÑлеÑа «\»). ÐапÑимеÑ, ÑледÑÑÑие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑквиваленÑнÑ:
var re = /\w+/;
var re = new RegExp("\\w+");
ÐнаÑение ÑпеÑиалÑнÑÑ
Ñимволов в ÑегÑлÑÑнÑÑ
вÑÑажениÑÑ
.
(ТоÑка, деÑÑÑиÑÐ½Ð°Ñ Ð·Ð°Ð¿ÑÑаÑ) ÑопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм Ñимволом за иÑклÑÑением Ñимволов новой ÑÑÑоки: \n
, \r
, \u2028
или \u2029
.
ÐбÑаÑиÑе внимание, ÑÑо Ñлаг многоÑÑÑоÑноÑÑи m
не изменÑÐµÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ ÑоÑки. Так ÑÑо Ð´Ð»Ñ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ñаблона Ñ Ð½ÐµÑколÑкими ÑÑÑоками иÑполÑзÑйÑе Ð½Ð°Ð±Ð¾Ñ Ñимволов [^]
(конеÑно, еÑли ÑолÑко вам не нÑжно поддеÑживаÑÑ ÑÑаÑÑе веÑÑии IE), он ÑопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм Ñимволом, вклÑÑÐ°Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð¾Ð²Ð¾Ð¹ ÑÑÑоки.
ÐапÑимеÑ, Ñаблон /.н/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «ан», но не подÑÑÑокой «нÑ», во ÑÑазе Â«Ð½Ñ ÑÑо, поÑанÑÑем».
\d
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом ÑиÑÑÑ Ð² базовом лаÑинÑком алÑавиÑе. ÐквиваленÑен набоÑÑ Ñимволов [0-9]
.
ÐапÑимеÑ, ÑÐ°Ð±Ð»Ð¾Ð½Ñ /\d/
и /[0-9]/
ÑопоÑÑавлÑÑÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «2» в ÑÑÑоке «B2 â ÑÑо Ð½Ð¾Ð¼ÐµÑ Ð»ÑкÑ».
\D
СопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм Ñимволом, коÑоÑÑй не ÑвлÑеÑÑÑ ÑиÑÑой в базовом лаÑинÑком алÑавиÑе. ÐквиваленÑен набоÑÑ Ñимволов [^0-9]
.
ÐапÑимеÑ, ÑÐ°Ð±Ð»Ð¾Ð½Ñ /\D/
и /[^0-9]/
ÑопоÑÑавлÑÑÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «B» в ÑÑÑоке «B2 â ÑÑо Ð½Ð¾Ð¼ÐµÑ Ð»ÑкÑ».
\w
СопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм алÑавиÑно-ÑиÑÑовÑм Ñимволом из базового лаÑинÑкого алÑавиÑа, вклÑÑÐ°Ñ Ñимвол подÑÑÑкиваниÑ. ÐквиваленÑен набоÑÑ Ñимволов [A-Za-z0-9_]
.
ÐапÑимеÑ, Ñаблон /\w/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «a» в ÑÑÑоке «apple», Ñ Ð¿Ð¾Ð´ÑÑÑокой «5» в ÑÑÑоке «$5.28» и Ñ Ð¿Ð¾Ð´ÑÑÑокой «3» в ÑÑÑоке «3D».
\W
СопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм Ñимволом из базового лаÑинÑкого алÑавиÑа, не ÑвлÑÑÑимÑÑ Ñимволом, из коÑоÑÑÑ
ÑоÑÑоÑÑ Ñлова. ÐквиваленÑен набоÑÑ Ñимволов [^A-Za-z0-9_]
.
ÐапÑимеÑ, ÑÐ°Ð±Ð»Ð¾Ð½Ñ /\W/
и /[^A-Za-z0-9_]/
ÑопоÑÑавлÑÑÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «%» в ÑÑÑоке «50%».
\s
СопоÑÑавлÑеÑÑÑ Ñ Ð¾Ð´Ð¸Ð½Ð¾ÑнÑм пÑобелÑнÑм Ñимволом, коÑоÑÑй вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ Ð¿Ñобел, ÑабÑлÑÑиÑ, подаÑÑ ÑÑÑаниÑÑ, пеÑевод ÑÑÑоки и дÑÑгие пÑобелÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð°. ÐквиваленÑен набоÑÑ Ñимволов [ \f\n\r\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]
.
ÐапÑимеÑ, Ñаблон /\s\w*/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой « bar» в ÑÑÑоке «foo bar».
\S
СопоÑÑавлÑеÑÑÑ Ñ Ð¾Ð´Ð¸Ð½Ð¾ÑнÑм Ñимволом, не ÑвлÑÑÑимÑÑ Ð¿ÑобелÑнÑм. ÐквиваленÑен набоÑÑ Ñимволов [^ \f\n\r\t\v\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]
.
ÐапÑимеÑ, Ñаблон /\S\w*/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «foo» в ÑÑÑоке «foo bar».
\t
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом ÑабÑлÑÑии. \r
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом возвÑаÑа каÑеÑки. \n
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом пеÑевода ÑÑÑоки. \v
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом веÑÑикалÑной ÑабÑлÑÑии. \f
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом подаÑи ÑÑÑаниÑÑ. [\b]
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом Ð·Ð°Ð±Ð¾Ñ (не пеÑепÑÑайÑе его Ñ ÑимволÑнÑм клаÑÑом \b
). \0
СопоÑÑавлÑеÑÑÑ Ñ Ð½ÑлевÑм Ñимволом. Ðе ÑÑавÑÑе за ним дÑÑгÑÑ ÑиÑÑÑ. \cX
Ðде X
ÑвлÑеÑÑÑ Ð±Ñквой Ð¾Ñ Â«A» до «Z». СопоÑÑавлÑеÑÑÑ Ñ ÑпÑавлÑÑÑим Ñимволом в ÑÑÑоке.
ÐапÑимеÑ, Ñаблон /\cM/
ÑопоÑÑавлÑеÑÑÑ Ñ Ñимволом control-M в ÑÑÑоке.
\xhh
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом Ñ ÐºÐ¾Ð´Ð¾Ð¼ hh
(две ÑеÑÑнадÑаÑеÑиÑнÑе ÑиÑÑÑ). \uhhhh
СопоÑÑавлÑеÑÑÑ Ñ Ñимволом Ñо знаÑением Юникода hhhh
(ÑеÑÑÑе ÑеÑÑнадÑаÑеÑиÑнÑе ÑиÑÑÑ). \
ÐÐ»Ñ Ñимволов, коÑоÑÑе обÑÑно ÑÑакÑÑÑÑÑÑ Ð±ÑквалÑно, ÑказÑваеÑ, ÑÑо ÑледÑÑÑий Ñимвол ÑвлÑеÑÑÑ ÑпеÑиалÑнÑм и не должен инÑеÑпÑеÑиÑоваÑÑÑÑ Ð±ÑквалÑно.
ÐапÑимеÑ, Ñаблон /b/
ÑопоÑÑавлÑеÑÑÑ Ñ Ñимволом «b». ÐомеÑÑив пеÑед ним Ñимвол обÑаÑного ÑлеÑа, Ñо еÑÑÑ Ð¿ÑевÑаÑив Ñаблон в /\b/
, Ñимвол пÑиобÑеÑÑÑ ÑпеÑиалÑное знаÑение, обознаÑаÑÑее ÑопоÑÑавление Ñ Ð³ÑаниÑей Ñлова.
или
ÐÐ»Ñ Ñимволов, коÑоÑÑе обÑÑно ÑÑакÑÑÑÑÑÑ ÑпеÑиалÑнÑм обÑазом, ÑказÑваеÑ, ÑÑо ÑледÑÑÑий Ñимвол не ÑвлÑеÑÑÑ ÑпеÑиалÑнÑм и должен инÑеÑпÑеÑиÑоваÑÑÑÑ Ð±ÑквалÑно.
ÐапÑимеÑ, звÑздоÑка «*» ÑвлÑеÑÑÑ ÑпеÑиалÑнÑм Ñимволом, обознаÑаÑÑим Ð½Ð¾Ð»Ñ Ð¸Ð»Ð¸ более вÑ
ождений пÑедÑеÑÑвÑÑÑего Ñимвола пÑи ÑопоÑÑавлении; поÑÑÐ¾Ð¼Ñ Ñаблон /a*/
ознаÑÐ°ÐµÑ ÑопоÑÑавление Ñ Ð½ÑлÑм или более Ñимволов «a». ÐÐ»Ñ Ð±ÑквалÑного ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñо звÑздоÑкой *
пÑедваÑиÑе ÐµÑ Ñимволом обÑаÑного ÑлеÑа; напÑимеÑ, Ñаблон /a\*/
ÑопоÑÑавлÑеÑÑÑ Ñо ÑÑÑокой «a*».
[xyz]
ÐÐ°Ð±Ð¾Ñ Ñимволов. СопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм из заклÑÑÑннÑÑ Ð² квадÑаÑнÑе Ñкобки Ñимволов. С помоÑÑÑ Ð´ÐµÑиÑа Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе опÑеделиÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñимволов.
ÐапÑимеÑ, Ñаблон [абвгд]
ознаÑÐ°ÐµÑ Ñоже Ñамое, ÑÑо и Ñаблон [а-д]
. Ðни ÑопоÑÑавлÑÑÑÑÑ Ñ Ñимволом «г» в Ñлове «гÑÑдинка» и Ñимволом «б» в Ñлове «оÑбивнаÑ».
[^xyz]
ÐÑÑиÑаÑелÑнÑй или дополниÑелÑнÑй Ð½Ð°Ð±Ð¾Ñ Ñимволов. То еÑÑÑ Ð¾Ð½ ÑопоÑÑавлÑеÑÑÑ Ñо вÑеми Ñимволами, ÑÑо не заклÑÑÐµÐ½Ñ Ð² квадÑаÑнÑе Ñкобки. С помоÑÑÑ Ð´ÐµÑиÑа Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе опÑеделиÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñимволов.
ÐапÑимеÑ, Ñаблон [^абвгд]
ознаÑÐ°ÐµÑ Ñоже Ñамое, ÑÑо и Ñаблон [^а-д]
. Ðни ÑопоÑÑавлÑÑÑÑÑ Ñ Ñимволом «е» в Ñлове «бекон» и Ñимволом «о» в Ñлове «оÑбивнаÑ».
^
СопоÑÑавлÑеÑÑÑ c наÑалом ввода. ÐÑли ÑÑÑановлен Ñлаг многоÑÑÑоÑноÑÑи, Ñакже ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð·Ð¸Ñией ÑÑÐ°Ð·Ñ Ð·Ð° Ñимволом пеÑеноÑа ÑÑÑоки.
ÐапÑимеÑ, Ñаблон /^Ð/
не ÑопоÑÑавлÑеÑÑÑ Ñ Ð±Ñквой «Ð» в ÑÑÑоке «бÑква л, но ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿ÐµÑвой бÑквой «Ð» в ÑÑÑоке «ÐÑква л.
$
СопоÑÑавлÑеÑÑÑ c конÑом ввода. ÐÑли ÑÑÑановлен Ñлаг многоÑÑÑоÑноÑÑи, Ñакже ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð·Ð¸Ñией ÑÑÐ°Ð·Ñ Ð¿ÐµÑед Ñимволом пеÑеноÑа ÑÑÑоки.
ÐапÑимеÑ, Ñаблон /Ñ$/
не ÑопоÑÑавлÑеÑÑÑ Ñ Ð±Ñквой «Ñ» в Ñлове «коÑмиÑÑ», но ÑопоÑÑавлÑеÑÑÑ Ñ Ð½ÐµÐ¹ в Ñлове «коÑмиÑ».
\b
СопоÑÑавлÑеÑÑÑ Ñ Ð³ÑаниÑей Ñлова нÑлевой ÑиÑинÑ, напÑÐ¸Ð¼ÐµÑ Ñ Ð¿Ð¾Ð·Ð¸Ñией Ð¼ÐµÐ¶Ð´Ñ Ð±Ñквой и пÑобелом (не пÑÑайÑе его Ñ Ð½Ð°Ð±Ð¾Ñом Ñимволов [\b]
).
ÐапÑимеÑ, Ñаблон /\bпол/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «пол» в ÑÑÑоке «в полденÑ»; Ñаблон /но\b/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «но» в ÑÑÑоке «возможно завÑÑа».
\B
СопоÑÑавлÑеÑÑÑ Ñ Ð³ÑаниÑей не-Ñлов нÑлевой ÑиÑинÑ, напÑÐ¸Ð¼ÐµÑ Ñ Ð¿Ð¾Ð·Ð¸Ñией Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð±Ñквами или двÑÐ¼Ñ Ð¿Ñобелами.
ÐапÑимеÑ, Ñаблон /\BденÑ/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «денÑ» в ÑÑÑоке «в полденÑ»; Ñаблон /за\B/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «за» в ÑÑÑоке «возможно завÑÑа».
(x)
СопоÑÑавлÑеÑÑÑ Ñ x
и Ð·Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ ÑопоÑÑавление. ÐазÑваеÑÑÑ Â«Ð·Ð°Ñ
ваÑÑваÑÑие Ñкобки».
ÐапÑимеÑ, Ñаблон /(foo)/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «foo» и Ð·Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ ÐµÑ Ð² ÑÑÑоке «foo bar». СопоÑÑавленнÑÑ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ доÑÑаÑÑ Ð¸Ð· ÑлеменÑов [1], ..., [n]
ÑезÑлÑÑиÑÑÑÑего маÑÑива или из пÑедопÑеделÑннÑÑ
ÑвойÑÑв $1, ..., $9
обÑекÑа RegExp
.
ÐÐ°Ñ Ð²Ð°Ñ Ð³ÑÑпп ведÑÑ Ðº пÑоÑÐµÐ´Ð°Ð½Ð¸Ñ Ð¿ÑоизводиÑелÑноÑÑи. ÐÑли вам не нÑжно повÑоÑно ÑÑÑлаÑÑÑÑ Ð½Ð° Ð·Ð°Ñ Ð²Ð°ÑеннÑÑ Ð¿Ð¾Ð´ÑÑÑокÑ, лÑÑÑе иÑполÑзоваÑÑ Ñкобки без Ð·Ð°Ñ Ð²Ð°Ñа (ÑмоÑÑиÑе ниже).
\n
Ðде n
ÑвлÑеÑÑÑ ÑелÑм положиÑелÑнÑм ÑиÑлом. ÐбÑаÑÐ½Ð°Ñ ÑÑÑлка на поÑледнÑÑ ÑопоÑÑавивÑÑÑÑÑ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ Ð² n-нÑÑ
по ÑÑÑÑÑ ÐºÑÑглÑÑ
ÑкобкаÑ
в ÑегÑлÑÑном вÑÑажении (нÑмеÑаÑÐ¸Ñ Ñкобок идÑÑ Ñлева напÑаво).
ÐапÑимеÑ, Ñаблон /Ñблоко(,)\sапелÑÑин\1/
ÑопоÑÑавиÑÑÑ Ð¿Ð¾Ð´ÑÑÑоке «Ñблоко, апелÑÑин,» в ÑÑÑоке «Ñблоко, апелÑÑин, виÑнÑ, пеÑÑик». Ðолее подÑобнÑй пÑÐ¸Ð¼ÐµÑ ÑмоÑÑиÑе поÑле ÑÑой ÑаблиÑÑ.
(?:x)
СопоÑÑавлÑеÑÑÑ Ñ x
, но не Ð·Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°ÐµÑ ÑопоÑÑавление. ÐазÑваеÑÑÑ Â«Ð½ÐµÐ·Ð°Ñ
ваÑÑваÑÑие Ñкобки». СопоÑÑавленнÑÑ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ Ð½ÐµÐ»ÑÐ·Ñ Ð´Ð¾ÑÑаÑÑ Ð¸Ð· ÑлеменÑов [1], ..., [n]
ÑезÑлÑÑиÑÑÑÑего маÑÑива или из пÑедопÑеделÑннÑÑ
ÑвойÑÑв $1, ..., $9
обÑекÑа RegExp
. ÐванÑиÑикаÑоÑÑ Ð¡Ð¸Ð¼Ð²Ð¾Ð» ÐнаÑение x*
СопоÑÑавлÑеÑÑÑ Ñ Ð¿ÑедÑеÑÑвÑÑÑим ÑлеменÑом x Ð½Ð¾Ð»Ñ Ð¸Ð»Ð¸ более Ñаз.
ÐапÑимеÑ, Ñаблон /ела*/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «ел» в ÑÑÑоке «ÐÑизÑак пÑоÑвиÑÑел» и подÑÑÑокой «ела» в ÑÑÑоке «ÐÑиÑа пÑопела», но ни Ñ Ñем не ÑопоÑÑавиÑÑÑ Ð² ÑÑÑоке «ÐозÑл Ñ
мÑкнÑл».
x+
СопоÑÑавлÑеÑÑÑ Ñ Ð¿ÑедÑеÑÑвÑÑÑим ÑлеменÑом x один или более Ñаз. ÐквиваленÑен кванÑиÑикаÑоÑÑ {1,}
.
ÐапÑимеÑ, Ñаблон /о+/
ÑопоÑÑавлÑеÑÑÑ Ñ Ñимволом «о» в ÑÑÑоке «конÑеÑа» и Ñо вÑеми Ñимволами «о» в ÑÑÑоке «коооооонÑеÑа».
x*?
x+?
СопоÑÑавлÑеÑÑÑ Ñ Ð¿ÑедÑеÑÑвÑÑÑим ÑлеменÑом x подобно кванÑиÑикаÑоÑам *
и +
, опиÑаннÑм вÑÑе, однако иÑÐµÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñно возможное ÑопоÑÑавление.
ÐапÑимеÑ, Ñаблон /".*?"/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «"foo"» в ÑÑÑоке «"foo" "bar"» и не ÑопоÑÑавлÑеÑÑÑ Ñо ÑÑÑокой «"foo" "bar"», поÑколÑÐºÑ Ð·Ð° звÑздоÑкой *
ÑледÑÐµÑ Ñимвол вопÑоÑа ?
.
x?
СопоÑÑавлÑеÑÑÑ Ñ Ð¿ÑедÑеÑÑвÑÑÑим ÑлеменÑом x Ð½Ð¾Ð»Ñ Ð¸Ð»Ð¸ один Ñаз.
ÐапÑимеÑ, Ñаблон /о?Ñо?/
ÑопоÑÑавлÑеÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «оÑ» в ÑÑÑоке «коÑ» и подÑÑÑокой «Ñо» в ÑÑÑоке «Ñок».
ÐÑли Ñимвол иÑполÑзÑеÑÑÑ ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле какого-Ñо из кванÑиÑикаÑоÑов *
, +
, ?
, или {}
, Ñо он Ð´ÐµÐ»Ð°ÐµÑ ÑÑÐ¾Ñ ÐºÐ²Ð°Ð½ÑиÑикаÑÐ¾Ñ Â«Ð½ÐµÐ¶Ð°Ð´Ð½Ñм» (ÑопоÑÑавление пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñно возможное колиÑеÑÑво Ñаз), в пÑоÑивоположноÑÑÑ Â«Ð¶Ð°Ð´Ð½Ð¾Ð¼Ñ» Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ²Ð°Ð½ÑиÑикаÑоÑа по ÑмолÑÐ°Ð½Ð¸Ñ (ÑопоÑÑавление пÑоиÑÑ
Ð¾Ð´Ð¸Ñ Ð¼Ð°ÐºÑималÑно возможное колиÑеÑÑво Ñаз).
Также Ñимвол иÑполÑзÑеÑÑÑ Ð² кванÑиÑикаÑоÑаÑ
пÑедпÑоÑмоÑÑа (?=)
, (?!)
и (?:)
, Ñакже опиÑаннÑÑ
в ÑÑой ÑаблиÑе.
x(?=y)
СопоÑÑавлÑеÑÑÑ Ñ x
, ÑолÑко еÑли за x
ÑледÑÐµÑ y
. ÐапÑимеÑ, Ñаблон /Ðжек(?=ШпÑоÑ)/
ÑопоÑÑавлÑеÑÑÑ Ñо ÑÑÑокой «Ðжек» ÑолÑко еÑли за ней ÑледÑÐµÑ ÑÑÑока «ШпÑоÑ». Шаблон /Ðжек(?=ШпÑоÑ|ÐоÑоз)/
ÑопоÑÑавлÑеÑÑÑ Ñо ÑÑÑокой «Ðжек» ÑолÑко еÑли за ней ÑледÑÑÑ ÑÑÑоки «ШпÑоÑ» или «ÐоÑоз». Ðднако, ни «ШпÑоÑ», ни «ÐоÑоз» не ÑвлÑÑÑÑÑ ÑаÑÑÑÑ ÑезÑлÑÑаÑа ÑопоÑÑавлениÑ. x(?!y)
СопоÑÑавлÑеÑÑÑ Ñ x
, ÑолÑко еÑли за x
не ÑледÑÐµÑ y
. ÐапÑимеÑ, Ñаблон /\d+(?!\.)/
ÑопоÑÑавлÑеÑÑÑ Ñ ÑиÑлом ÑолÑко еÑли за ним не ÑледÑÐµÑ Ð´ÐµÑÑÑиÑÐ½Ð°Ñ Ð·Ð°Ð¿ÑÑаÑ.
ÐÑÑажение /\d+(?!\.)/.exec('3.141')
ÑопоÑÑавиÑÑÑ Ñ Â«141» но не Ñ Â«3.141».
(?<=y)x
СопоÑÑавлÑеÑÑÑ Ñ x
, ÑолÑко еÑли x
пÑедÑеÑÑвÑÐµÑ y
ÐапÑимеÑ, /(?<=ÐÑÑÑ)Ðванов/
ÑопоÑÑавиÑÑÑ Ñ "Ðванов" ÑолÑко еÑли ÐµÐ¼Ñ Ð±ÑÐ´ÐµÑ Ð¿ÑедÑеÑÑвоваÑÑ "ÐеÑÑ"./(?<=ÐÑÑÑ|ÐладиÑлав)Ðванов/
ÑопоÑÑавиÑÑÑ Ñ "Ðванов" ÑолÑко еÑли ÐµÐ¼Ñ Ð±ÑÐ´ÐµÑ Ð¿ÑедÑеÑÑвоваÑÑ "ÐÑÑÑ" или "ÐладиÑлав".
РлÑбом ÑлÑÑае, ни "ÐÑÑÑ" ни "ÐладиÑлав" не войдÑÑ Ð² ÑезÑлÑÑÐ°Ñ ÑопоÑÑавлениÑ.
(?<!y)x
СопоÑÑавлÑеÑÑÑ Ñ x
, ÑолÑко еÑли x
не пÑедÑеÑÑвÑÐµÑ y
ÐапÑимеÑ, /(?<!-)\d+/
ÑопоÑÑавиÑÑÑ Ñ ÑиÑÑой, ÑолÑко еÑли ей не пÑедÑеÑÑвÑÐµÑ Ð¼Ð¸Ð½ÑÑ./(?<!-)\d+/.exec('3')
веÑнÑÑ "3"./(?<!-)\d+/.exec('-3')
не ÑопоÑÑавиÑÑÑ Ñ ÑиÑÑой, Ñк ÑиÑÑе пеÑед ÑиÑÑой 3 пÑиÑÑÑÑÑвÑÐµÑ Ð¼Ð¸Ð½ÑÑ.
x|y
СопоÑÑавлÑеÑÑÑ Ð»Ð¸Ð±Ð¾ Ñ x
, либо Ñ y
.
ÐапÑимеÑ, Ñаблон /зелÑное|кÑаÑное/
ÑопоÑÑавиÑÑÑ Ñ Ð¿Ð¾Ð´ÑÑÑокой «зелÑное» в ÑÑÑоке «зелÑное Ñблоко» и подÑÑÑокой «кÑаÑное» в ÑÑÑоке «кÑаÑное Ñблоко».
x{n}
Ðде n
ÑвлÑеÑÑÑ ÑелÑм положиÑелÑнÑм ÑиÑлом. СопоÑÑавлÑеÑÑÑ ÑоÑно Ñ n
вÑ
ождениÑми пÑедÑеÑÑвÑÑÑего ÑлеменÑа x.
ÐапÑимеÑ, Ñаблон /о{2}/
не ÑопоÑÑавиÑÑÑ Ñ Ñимволом «о» в Ñлове «конÑеÑа», но ÑопоÑÑавиÑÑÑ Ñо вÑеми Ñимволами «о» в Ñлове «коонÑеÑа» и Ñ Ð¿ÐµÑвÑми двÑÐ¼Ñ Ñимволами «о» в Ñлове «кооонÑеÑа».
x{n,}
Ðде n
ÑвлÑеÑÑÑ ÑелÑм положиÑелÑнÑм ÑиÑлом. СопоÑÑавлÑеÑÑÑ Ð¿Ð¾ кÑайней меÑе Ñ n
вÑ
ождениÑми пÑедÑеÑÑвÑÑÑего ÑлеменÑа x.
ÐапÑимеÑ, Ñаблон /о{2,}/
не ÑопоÑÑавиÑÑÑ Ñ Ñимволом «о» в Ñлове «конÑеÑа», но ÑопоÑÑавиÑÑÑ Ñо вÑеми Ñимволами «о» в ÑловаÑ
«коонÑеÑа» и даже в «кооооооонÑеÑа».
x{n,m}
Ðде n
и m
ÑвлÑÑÑÑÑ ÑелÑми положиÑелÑнÑми ÑиÑлами. СопоÑÑавлÑеÑÑÑ Ð¿Ð¾ кÑайней меÑе Ñ n
но не более, Ñем Ñ m
вÑ
ождениÑми пÑедÑеÑÑвÑÑÑего ÑлеменÑа x.
ÐапÑимеÑ, Ñаблон /о{1,3}/
ни Ñ Ñем не ÑопоÑÑавиÑÑÑ Ð² Ñлове «кнÑеÑа», Ñ Ñимволом «о» в Ñлове «конÑеÑа», Ñ Ð´Ð²ÑÐ¼Ñ Ñимволами «о» в Ñлове «коонÑеÑа» и Ñ Ð¿ÐµÑвÑми ÑÑÐµÐ¼Ñ Ñимволами «о» в Ñлове «кооооооонÑеÑа». ÐбÑаÑиÑе внимание, ÑÑо пÑи ÑопоÑÑавлении Ñо Ñловом «кооооооонÑеÑа» ÑопоÑÑавимоÑÑÑ ÑолÑко подÑÑÑока «ооо», Ñ
оÑÑ Ñлово ÑодеÑжало гоÑаздо болÑÑе Ñимволов «о».
RegExp.prototype
ÐозволÑÐµÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑ ÑвойÑÑва ко вÑем обÑекÑам ÑегÑлÑÑнÑÑ Ð²ÑÑажений.
RegExp.length
ÐнаÑение RegExp.length
Ñавно 2.
ÐлобалÑнÑй обÑÐµÐºÑ RegExp
не Ð¸Ð¼ÐµÐµÑ ÑобÑÑвеннÑÑ
меÑодов, однако, он наÑледÑÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑе меÑÐ¾Ð´Ñ ÑеÑез ÑепоÑÐºÑ Ð¿ÑоÑоÑипов.
СледÑÑÑий ÑкÑÐ¸Ð¿Ñ Ð¸ÑполÑзÑÐµÑ Ð¼ÐµÑод replace()
ÑкземплÑÑа ÑÑÑоки String
Ð´Ð»Ñ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ в ÑоÑмаÑе Ð¸Ð¼Ñ ÑÐ°Ð¼Ð¸Ð»Ð¸Ñ Ð¸ вÑÐ²Ð¾Ð´Ð¸Ñ ÐµÐ³Ð¾ в ÑоÑмаÑе ÑамилиÑ, имÑ. Ð ÑеÑÑе Ð·Ð°Ð¼ÐµÐ½Ñ ÑкÑÐ¸Ð¿Ñ Ð¸ÑполÑзÑÐµÑ Ð·Ð°Ð¼ÐµÐ½Ð¸Ñели $1
и $2
, коÑоÑÑе заменÑÑÑÑÑ Ð½Ð° ÑезÑлÑÑаÑÑ ÑооÑвеÑÑÑвÑÑÑиÑ
ÑопоÑÑавивÑиÑ
ÑÑ Ð¿Ð¾Ð´Ð³ÑÑпп ÑегÑлÑÑного вÑÑажениÑ.
var re = /(\w+)\s(\w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1");
console.log(newstr);
// пÑÐ¸Ð¼ÐµÑ Ñ ÑÑÑÑкими бÑквами
var re = /([а-ÑÑ]+)\s([а-ÑÑ]+)/i;
var str = "Ðжон СмиÑ";
var newstr = str.replace(re, "$2, $1");
console.log(newstr);
ÐÑÐ¸Ð¼ÐµÑ Ð²ÑÐ²ÐµÐ´ÐµÑ Â«Smith, John» и «СмиÑ, Ðжон»
ÐÑимеÑ: иÑполÑзование ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑÐ°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ ÑÑÑок Ñ ÑазлиÑнÑми Ñимволами конÑа ÑÑÑÐ¾ÐºÐ¸Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ ÐºÐ¾Ð½Ñа ÑÑÑоки ÑазлиÑаÑÑÑÑ Ð½Ð° ÑазлиÑнÑÑ Ð¿Ð»Ð°ÑÑоÑÐ¼Ð°Ñ (Unix, Windows и Ñак далее). Разбиение ÑÑÑок из ÑÑого пÑимеÑа ÑабоÑÐ°ÐµÑ Ð½Ð° вÑÐµÑ Ð¿Ð»Ð°ÑÑоÑÐ¼Ð°Ñ .
var text = "ÐекоÑоÑÑй ÑекÑÑ\nÐÑÑ ÑекÑÑ\r\nРеÑÑ\rÐÑо конеÑ";
var lines = text.split(/\r\n|\r|\n/);
console.log(lines); // вÑÐ²ÐµÐ´ÐµÑ [ 'ÐекоÑоÑÑй ÑекÑÑ', 'ÐÑÑ ÑекÑÑ', 'РеÑÑ', 'ÐÑо конеÑ' ]
ÐбÑаÑиÑе внимание, ÑÑо поÑÑдок Ñаблонов в ÑегÑлÑÑном вÑÑажении Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение.
ÐÑимеÑ: иÑполÑзование ÑегÑлÑÑнÑÑ Ð²ÑÑажений на неÑколÑÐºÐ¸Ñ ÑÑÑокаÑvar s = "Please yes\nmake my day!";
s.match(/yes.*day/);
// ÐеÑнÑÑ null
s.match(/yes[^]*day/);
// ÐеÑнÑÑ 'yes\nmake my day'
ÐÑимеÑ: иÑполÑзование ÑегÑлÑÑнÑÑ
вÑÑажений Ñ Ñлагом «липÑÑеÑÑи»
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð´ÐµÐ¼Ð¾Ð½ÑÑÑиÑÑеÑ, как можно иÑполÑзоваÑÑ Ñлаг «липÑÑеÑÑи» ÑегÑлÑÑнÑÑ Ð²ÑÑажений Ð´Ð»Ñ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¾ÑделÑнÑми ÑÑÑоками многоÑÑÑоÑного ввода.
var text = "ÐеÑÐ²Ð°Ñ ÑÑÑока\nÐÑоÑÐ°Ñ ÑÑÑока";
var regex = /(\S+) ÑÑÑока\n?/y;
var match = regex.exec(text);
console.log(match[1]); // напеÑаÑÐ°ÐµÑ 'ÐеÑваÑ'
console.log(regex.lastIndex); // напеÑаÑÐ°ÐµÑ '14'
var match2 = regex.exec(text);
console.log(match2[1]); // напеÑаÑÐ°ÐµÑ 'ÐÑоÑаÑ'
console.log(regex.lastIndex); // напеÑаÑÐ°ÐµÑ '27'
var match3 = regex.exec(text);
console.log(match3 === null); // напеÑаÑÐ°ÐµÑ 'true'
Ðо вÑÐµÐ¼Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑовеÑиÑÑ, поддеÑживаеÑÑÑ Ð»Ð¸ Ñлаг «липÑÑеÑÑи», пÑи помоÑи блока try { ⦠} catch { ⦠}
. ÐÐ»Ñ ÑÑого надо иÑполÑзоваÑÑ Ð»Ð¸Ð±Ð¾ вÑÑажение Ñ eval(â¦)
, либо конÑÑÑÑкÑÐ¾Ñ RegExp(ÑÑÑока-ÑегÑлÑÑки, ÑÑÑока-Ñ-Ñлагами)
(поÑколÑÐºÑ Ð½Ð¾ÑаÑÐ¸Ñ /ÑегÑлÑÑка/Ñлаги
обÑабаÑÑваеÑÑÑ Ð²Ð¾ вÑÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑии, иÑклÑÑение бÑÐ´ÐµÑ Ð²ÑбÑоÑено до Ñого, как вÑполнение доÑÑÐ¸Ð³Ð½ÐµÑ Ð±Ð»Ð¾ÐºÐ° catch
). ÐапÑимеÑ:
var supports_sticky;
try {
RegExp("", "y");
supports_sticky = true;
} catch (e) {
supports_sticky = false;
}
console.log(supports_sticky); // напеÑаÑÐ°ÐµÑ 'true'
ÐÑимеÑ: ÑегÑлÑÑнÑе вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¸ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð°
Ðак Ñже Ñказано вÑÑе, ÑимволÑнÑе клаÑÑÑ \w
и \W
ÑопоÑÑавлÑÑÑÑÑ ÑолÑко Ñ Ð±Ð°Ð·Ð¾Ð²Ñми Ñимволами ASCII; Ñо еÑÑÑ, Ñ Ñимволами Ð¾Ñ Â«a» до «z», Ð¾Ñ Â«A» до «Z», Ð¾Ñ Â«0» до «9» и Ñимволом «_». ÐÐ»Ñ ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ñимволами из дÑÑгиÑ
ÑзÑков, напÑимеÑ, Ñ ÐºÐ¸ÑиллиÑеÑкими или ивÑиÑа, иÑполÑзÑйÑе ÑоÑÐ¼Ñ \uhhhh
, где «hhhh» â ÑÑо знаÑение Ñимвола Юникода, запиÑанное в ÑеÑÑнадÑаÑеÑиÑной ÑоÑме. ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ð´ÐµÐ¼Ð¾Ð½ÑÑÑиÑÑеÑ, как можно вÑделиÑÑ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´Ð°, ÑоÑÑавлÑÑÑие Ñлова.
var text = "ÐбÑÐ°Ð·ÐµÑ text на ÑÑÑÑком ÑзÑке";
var regex = /[\u0400-\u04FF]+/g;
var match = regex.exec(text);
console.log(match[0]); // напеÑаÑÐ°ÐµÑ 'ÐбÑазеÑ'
console.log(regex.lastIndex); // напеÑаÑÐ°ÐµÑ '7'
var match2 = regex.exec(text);
console.log(match2[0]); // напеÑаÑÐ°ÐµÑ 'на' [не 'text']
console.log(regex.lastIndex); // напеÑаÑÐ°ÐµÑ '15'
// и Ñак далее
ÐÐ¾Ñ Ð½Ð° ÑÑом внеÑнем ÑеÑÑÑÑе можно ÑоÑÑавиÑÑ Ð¿Ð¾Ð»Ð½Ñй диапазон блоков Юникода Ð´Ð»Ñ ÑазлиÑнÑÑ Ð¿Ð¸ÑÑменноÑÑей: regexp-unicode-block.
ÐÑимеÑ: извлеÑение имени поддомена из URLvar url = "http://xxx.domain.com";
console.log(/[^.]+/.exec(url)[0].substr(7)); // напеÑаÑÐ°ÐµÑ 'xxx'
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами ÐÑимеÑÐ°Ð½Ð¸Ñ Ð¿Ð¾ Gecko
ÐаÑÐ¸Ð½Ð°Ñ Ñ Gecko 34, в ÑлÑÑае заÑ
ваÑа гÑÑÐ¿Ð¿Ñ Ñ ÐºÐ²Ð°Ð½ÑиÑикаÑоÑами, пÑедоÑвÑаÑаÑÑими поÑвление гÑÑÐ¿Ð¿Ñ Ð² ÑезÑлÑÑаÑе ÑопоÑÑавлениÑ, ÑопоÑÑавивÑийÑÑ ÑекÑÑ Ð´Ð»Ñ Ð·Ð°Ñ
ваÑенной гÑÑÐ¿Ð¿Ñ ÑепеÑÑ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение undefined
вмеÑÑо пÑÑÑой ÑÑÑоки:
// Firefox 33 или более Ñанние
"x".replace(/x(.)?/g, function (m, group) {
console.log("'group:" + group + "'");
}); // 'group:'
// Firefox 34 или более новÑе
"x".replace(/x(.)?/g, function (m, group) {
console.log("'group:" + group + "'");
}); // 'group:undefined'
ÐбÑаÑиÑе внимание, ÑÑо Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð°Ð½Ð¸Ñ Ð¾Ð±ÑаÑной ÑовмеÑÑимоÑÑи, ÑвойÑÑва RegExp.$N
по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ Ð¿ÑÑÑÑÑ ÑÑÑÐ¾ÐºÑ Ð²Ð¼ÐµÑÑо знаÑÐµÐ½Ð¸Ñ undefined
(bug 1053944).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4