Baseline Widely available
СводкаÐеÑод replace()
возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²ÑÑ ÑÑÑÐ¾ÐºÑ Ñ Ð½ÐµÐºÐ¾ÑоÑÑми или вÑеми ÑопоÑÑавлениÑми Ñ Ñаблоном, заменÑннÑми на замениÑелÑ. Шаблон Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑокой или ÑегÑлÑÑнÑм вÑÑажением, а замениÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑÑÑокой или ÑÑнкÑией, вÑзÑваемой пÑи каждом ÑопоÑÑавлении.
str.replace(regexp|substr, newSubStr|function[, flags])ÐаÑамеÑÑÑ
regexp
ÐбÑÐµÐºÑ ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ RegExp
. СопоÑÑавление заменÑеÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑаемÑм знаÑением вÑоÑого паÑамеÑÑа.
substr
СÑÑока, заменÑÐµÐ¼Ð°Ñ Ð½Ð° newSubStr
. ÐбÑаÑиÑе внимание, бÑÐ´ÐµÑ Ð·Ð°Ð¼ÐµÐ½ÐµÐ½Ð¾ ÑолÑко пеÑвое вÑ
ождение иÑкомой ÑÑÑоки.
newSubStr
СÑÑока, заменÑÑÑÐ°Ñ Ð¿Ð¾Ð´ÑÑÑÐ¾ÐºÑ Ð¸Ð· пеÑвого паÑамеÑÑа. ÐоддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð½ÐµÑколÑко ÑпеÑиалÑнÑÑ Ñаблонов заменÑ; ÑмоÑÑиÑе ниже Ñаздел ÐеÑедаÑа ÑÑÑоки в каÑеÑÑве вÑоÑого паÑамеÑÑа.
function
ФÑнкÑиÑ, вÑзÑÐ²Ð°ÐµÐ¼Ð°Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ подÑÑÑоки (помеÑаемой вмеÑÑо подÑÑÑоки из пеÑвого паÑамеÑÑа). ÐÑгÑменÑÑ, пеÑедаваемÑе ÑÑнкÑии, опиÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ в Ñазделе ÐеÑедаÑа ÑÑнкÑии в каÑеÑÑве вÑоÑого паÑамеÑÑа.
flags
Ðе ÑÑандаÑÑно
ÐбÑаÑиÑе внимание: аÑгÑÐ¼ÐµÐ½Ñ flags
не ÑабоÑÐ°ÐµÑ Ð² ÑдÑе v8 (движок JavaScript в Chrome и NodeJs). СÑÑока, задаÑÑÐ°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°ÑÐ¸Ñ Ñлагов ÑегÑлÑÑного вÑÑажениÑ. ÐаÑамеÑÑ flags
в меÑоде String.prototype.replace()
ÑвлÑеÑÑÑ Ð½ÐµÑÑандаÑÑнÑм ÑаÑÑиÑением. ÐмеÑÑо иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑого паÑамеÑÑа иÑполÑзÑйÑе обÑÐµÐºÑ RegExp
Ñ ÑооÑвеÑÑÑвÑÑÑими Ñлагами. ÐнаÑение ÑÑого паÑамеÑÑа, еÑли он иÑполÑзÑеÑÑÑ, должно бÑÑÑ ÑÑÑокой, ÑоÑÑоÑÑей из одного или более ÑледÑÑÑиÑ
Ñимволов, ÑледÑÑÑим обÑазом влиÑÑÑиÑ
на обÑабоÑÐºÑ ÑегÑлÑÑного вÑÑажениÑ:
g
глобалÑное ÑопоÑÑавление
i
игноÑиÑоваÑÑ ÑегиÑÑÑ
m
ÑопоÑÑавление по неÑколÑким ÑÑÑокам
y
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ
«липкий» поиÑк, ÑопоÑÑавление наÑинаеÑÑÑ Ñ ÑекÑÑей позиÑии в ÑÑÑоке
ÐÐ¾Ð²Ð°Ñ ÑÑÑока Ñ Ð½ÐµÐºÐ¾ÑоÑÑми или вÑеми ÑопоÑÑавлениÑми Ñаблона, заменÑннÑми на замениÑелÑ.
ÐпиÑаниеÐÑÐ¾Ñ Ð¼ÐµÑод не изменÑÐµÑ Ð¾Ð±ÑÐµÐºÑ String
, на коÑоÑом он вÑзÑваеÑÑÑ. Ðн пÑоÑÑо возвÑаÑÐ°ÐµÑ Ð½Ð¾Ð²ÑÑ ÑÑÑокÑ.
ÐÐ»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ñного поиÑка и Ð·Ð°Ð¼ÐµÐ½Ñ Ð»Ð¸Ð±Ð¾ вклÑÑиÑе Ñлаг g
в ÑегÑлÑÑное вÑÑажение, либо, еÑли пеÑвÑй паÑамеÑÑ ÑвлÑеÑÑÑ ÑÑÑокой, вклÑÑиÑе Ñлаг g
в паÑамеÑÑ flags
.
ÑÑÑока Ð·Ð°Ð¼ÐµÐ½Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÐºÐ»ÑÑаÑÑ ÑледÑÑÑие ÑпеÑиалÑнÑе ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð·Ð°Ð¼ÐµÐ½Ñ:
Шаблон Ðамена$$
ÐÑÑавлÑÐµÑ Ñимвол доллаÑа «$». $&
ÐÑÑавлÑÐµÑ ÑопоÑÑавивÑÑÑÑÑ Ð¿Ð¾Ð´ÑÑÑокÑ. $`
ÐÑÑавлÑÐµÑ ÑаÑÑÑ ÑÑÑоки, пÑедÑеÑÑвÑÑÑÑÑ ÑопоÑÑавивÑейÑÑ Ð¿Ð¾Ð´ÑÑÑоке. $'
ÐÑÑавлÑÐµÑ ÑаÑÑÑ ÑÑÑоки, ÑледÑÑÑÑÑ Ð·Ð° ÑопоÑÑавивÑейÑÑ Ð¿Ð¾Ð´ÑÑÑокой. $n
или $nn
Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ n
или nn
ÑвлÑÑÑÑÑ Ð´ÐµÑÑÑиÑнÑми ÑиÑÑами, вÑÑавлÑÐµÑ n-нÑÑ ÑопоÑÑавивÑÑÑÑÑ Ð¿Ð¾Ð´Ð³ÑÑÐ¿Ð¿Ñ Ð¸Ð· обÑекÑа RegExp
в пеÑвом паÑамеÑÑе. ÐеÑедаÑа ÑÑнкÑии в каÑеÑÑве вÑоÑого паÑамеÑÑа
РкаÑеÑÑве вÑоÑого паÑамеÑÑа Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пеÑедаÑÑ ÑÑнкÑиÑ. Ð ÑÑом ÑлÑÑае ÑÑнкÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ñполнена поÑле пÑоизоÑедÑего ÑопоÑÑавлениÑ. РезÑлÑÑÐ°Ñ Ð²Ñзова ÑÑнкÑии (ÐµÑ Ð²Ð¾Ð·Ð²ÑаÑаемое знаÑение) бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð² каÑеÑÑве ÑÑÑоки Ð·Ð°Ð¼ÐµÐ½Ñ (обÑаÑиÑе внимание: опиÑаннÑе вÑÑе ÑпеÑиалÑнÑе ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ð² ÑÑом ÑлÑÑае не пÑименÑÑÑÑÑ). ÐбÑаÑиÑе внимание, ÑÑо ÑÑнкÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²Ñзвана неÑколÑко Ñаз Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ полного ÑопоÑÑавлениÑ, еÑли ÑегÑлÑÑное вÑÑажение в пеÑвом паÑамеÑÑе ÑвлÑеÑÑÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑм.
ФÑнкÑÐ¸Ñ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑледÑÑÑие аÑгÑменÑÑ:
Ðозможное Ð¸Ð¼Ñ ÐолÑÑаемое знаÑениеmatch
СопоÑÑавивÑаÑÑÑ Ð¿Ð¾Ð´ÑÑÑока (ÑооÑвеÑÑÑвÑÐµÑ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð·Ð°Ð¼ÐµÐ½Ñ $&
, опиÑÐ°Ð½Ð½Ð¾Ð¼Ñ Ð²ÑÑе). p1, p2, ...
n-Ð½Ð°Ñ ÑопоÑÑавивÑаÑÑÑ Ð¿Ð¾Ð´Ð³ÑÑппа из обÑекÑа RegExp
в пеÑвом паÑамеÑÑе меÑода replace()
(ÑооÑвеÑÑÑвÑÐµÑ Ñаблонам Ð·Ð°Ð¼ÐµÐ½Ñ $1
, $2
и Ñак далее, опиÑаннÑм вÑÑе). ÐапÑимеÑ, еÑли в каÑеÑÑве Ñаблона пеÑедано ÑегÑлÑÑное вÑÑажение /(\a+)(\b+)/
, паÑамеÑÑ p1
бÑÐ´ÐµÑ Ð·Ð½Ð°Ñение ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð´Ð³ÑÑппой \a+
, а паÑамеÑÑ p2
â Ñ Ð¿Ð¾Ð´Ð³ÑÑппой \b+
. offset
СмеÑение ÑопоÑÑавивÑейÑÑ Ð¿Ð¾Ð´ÑÑÑоки внÑÑÑи вÑей ÑаÑÑмаÑÑиваемой ÑÑÑоки (напÑимеÑ, еÑли вÑÑ ÑÑÑока Ñавна 'abcd'
, а ÑопоÑÑавивÑаÑÑÑ Ð¿Ð¾Ð´ÑÑÑока Ñавна 'bc'
, Ñо ÑÑÐ¾Ñ Ð°ÑгÑÐ¼ÐµÐ½Ñ Ð±ÑÐ´ÐµÑ Ñавен 1). string
ÐÑÑ ÑаÑÑмаÑÑÐ¸Ð²Ð°ÐµÐ¼Ð°Ñ ÑÑÑока.
ТоÑное ÑиÑло аÑгÑменÑов бÑÐ´ÐµÑ Ð·Ð°Ð²Ð¸ÑеÑÑ Ð¾Ñ Ñого, бÑл ли пеÑвÑм аÑгÑменÑом обÑÐµÐºÑ RegExp
и, еÑли бÑл, ÑколÑко подгÑÑпп в нÑм опÑеделено.
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð¸Ñ Ð¿ÐµÑеменнÑÑ newString
в знаÑение 'abc - 12345 - #$*%'
:
function replacer(match, p1, p2, p3, offset, string) {
// p1 - не ÑиÑÑÑ, p2 - ÑиÑÑÑ, p3 - не бÑÐºÐ²Ñ Ð¸ не ÑиÑÑÑ
return [p1, p2, p3].join(" - ");
}
var newString = "abc12345#$*%".replace(/([^\d]*)(\d*)([^\w]*)/, replacer);
ÐÑимеÑÑ ÐÑимеÑ: иÑполÑзование Ñлагов global
и ignore
Ñ Ð¼ÐµÑодом replace()
Ð ÑледÑÑÑем пÑимеÑе ÑегÑлÑÑное вÑÑажение вклÑÑÐ°ÐµÑ Ñлаги Ð´Ð»Ñ Ð³Ð»Ð¾Ð±Ð°Ð»Ñного поиÑка и игноÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑегиÑÑÑа, коÑоÑÑе позволÑÑÑ Ð¼ÐµÑÐ¾Ð´Ñ replace()
замениÑÑ Ð²Ñе вÑ
Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ñлова «Ñблоки» в ÑÑÑоке на Ñлово «апелÑÑинÑ».
var re = /Ñблоки/gi;
var str = "Яблоки кÑÑглÑе и Ñблоки ÑоÑнÑе.";
var newstr = str.replace(re, "апелÑÑинÑ");
console.log(newstr); // апелÑÑÐ¸Ð½Ñ ÐºÑÑглÑе и апелÑÑÐ¸Ð½Ñ ÑоÑнÑе.
ÐÑимеÑ: пеÑедаÑа ÑегÑлÑÑного вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð² меÑод replace()
Ð ÑледÑÑÑем пÑимеÑе в меÑод replace()
пеÑедаÑÑÑÑ ÑегÑлÑÑное вÑÑажение вмеÑÑе Ñ Ñлагом игноÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑегиÑÑÑа.
// ÐоÑÑ Ð¿ÐµÑед РождеÑÑвом, Xmas - ÑокÑаÑение Ð´Ð»Ñ Christmas
var str = "Twas the night before Xmas...";
var newstr = str.replace(/xmas/i, "Christmas");
console.log(newstr); // Twas the night before Christmas...
ÐÑÐ¸Ð¼ÐµÑ Ð²ÑÐ²ÐµÐ´ÐµÑ ÑÑÑÐ¾ÐºÑ 'Twas the night before Christmas...'
ÐÑимеÑ: Ñмена меÑÑами Ñлов в ÑÑÑокеСледÑÑÑий ÑкÑÐ¸Ð¿Ñ Ð¼ÐµÐ½ÑÐµÑ Ð¼ÐµÑÑами Ñлова в ÑÑÑоке. РкаÑеÑÑве ÑекÑÑа Ð·Ð°Ð¼ÐµÐ½Ñ Ð¾Ð½ иÑполÑзÑÐµÑ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð·Ð°Ð¼ÐµÐ½Ñ $1
и $2
.
var re = /([Ð-ЯÐа-ÑÑ]+)\s([Ð-ЯÐа-ÑÑ]+)/;
var str = "Ðжон СмиÑ";
var newstr = str.replace(re, "$2, $1");
console.log(newstr); // СмиÑ, Ðжон
ÐÑÐ¸Ð¼ÐµÑ Ð²ÑÐ²ÐµÐ´ÐµÑ ÑÑÑÐ¾ÐºÑ 'СмиÑ, Ðжон'.
ÐÑимеÑ: иÑполÑзование ÑÑнкÑии Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑопоÑÑавивÑÐ¸Ñ ÑÑ ÑимволовРÑÑом пÑимеÑе вÑе Ð²Ñ Ð¾Ð´ÑÑие в ÑÑÑÐ¾ÐºÑ (лаÑинÑкие) бÑÐºÐ²Ñ Ð² веÑÑ Ð½ÐµÐ¼ ÑегиÑÑÑе пÑеобÑазÑÑÑÑÑ Ð² нижний ÑегиÑÑÑ, а пеÑед Ñамой бÑквой вÑÑавлÑеÑÑÑ Ð´ÐµÑиÑ. ÐдеÑÑ Ð²Ð°Ð¶Ð½Ð¾ Ñо, ÑÑо пÑежде Ñем ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²ÑÑавиÑÑÑ Ð² каÑеÑÑве заменÑ, над ним нÑжно пÑовеÑÑи дополниÑелÑнÑе пÑеобÑазованиÑ.
ФÑнкÑÐ¸Ñ Ð·Ð°Ð¼ÐµÐ½Ñ Ñвоим паÑамеÑÑом пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑопоÑÑавивÑийÑÑ ÐºÑÑок и пеÑед возвÑаÑом иÑполÑзÑÐµÑ ÐµÐ³Ð¾ Ð´Ð»Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑегиÑÑÑа и ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ð´ÐµÑиÑом.
function styleHyphenFormat(propertyName) {
function upperToHyphenLower(match) {
return "-" + match.toLowerCase();
}
return propertyName.replace(/[A-Z]/g, upperToHyphenLower);
}
ÐÑзов styleHyphenFormat('borderTop')
веÑнÑÑ ÑÑÑÐ¾ÐºÑ 'border-top'.
ÐоÑколÑÐºÑ Ð¼Ñ Ñ
оÑим пÑовеÑÑи дополниÑелÑнÑе пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑезÑлÑÑаÑа ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ Ñого, как бÑÐ´ÐµÑ Ð¸ÑполÑзована оконÑаÑелÑÐ½Ð°Ñ Ð¿Ð¾Ð´ÑÑановка, Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ ÑÑнкÑиÑ. ÐÑо заÑÑавлÑÐµÑ Ð½Ð°Ñ Ð¿ÑинÑдиÑелÑно вÑÑиÑлиÑÑ ÑопоÑÑавление пеÑед иÑполÑзование меÑода toLowerCase()
. ÐÑли Ð±Ñ Ð¼Ñ Ð¿Ð¾Ð¿ÑÑалиÑÑ Ð¸ÑполÑзоваÑÑ ÑопоÑÑавление без ÑÑнкÑии, меÑод toLowerCase()
не ÑÑабоÑал бÑ.
var newString = propertyName.replace(/[A-Z]/g, "-" + "$&".toLowerCase()); // не ÑабоÑаеÑ
ÐÑоиÑÑ
Ð¾Ð´Ð¸Ñ ÑÑо поÑомÑ, ÑÑо ÑнаÑала ÑаÑÑÑ '$&'.toLowerCase()
вÑÑиÑлÑеÑÑÑ Ð² ÑÑÑоковÑй лиÑеÑал (ÑезÑлÑÑÐ°Ñ Ð¿Ð¾-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ñавен '$&'
), а ÑолÑко поÑом его ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¸ÑполÑзÑÑÑÑÑ Ð² каÑеÑÑве Ñаблона.
Ð ÑледÑÑÑем пÑимеÑе гÑадÑÑÑ Ð¿Ð¾ ФаÑенгейÑÑ Ð·Ð°Ð¼ÐµÐ½ÑÑÑÑÑ Ð½Ð° ÑквиваленÑнÑе гÑадÑÑÑ Ð¿Ð¾ ЦелÑÑиÑ. ÐÑадÑÑÑ Ð¿Ð¾ ФаÑенгейÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑиÑлом, оканÑиваÑÑимÑÑ Ð½Ð° бÑÐºÐ²Ñ F. ФÑнкÑÐ¸Ñ Ð²Ð¾Ð·Ð²ÑаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво гÑадÑÑов по ЦелÑÑиÑ, оканÑиваÑÑиеÑÑ Ð½Ð° бÑÐºÐ²Ñ C. ÐапÑимеÑ, еÑли Ð²Ñ Ð¾Ð´Ð½Ð¾Ðµ ÑиÑло ÑавнÑеÑÑÑ 212F, ÑÑнкÑÐ¸Ñ Ð²ÐµÑнÑÑ 100C. ÐÑли ÑиÑло ÑавнÑеÑÑÑ 0F, ÑÑнкÑÐ¸Ñ Ð²ÐµÑнÑÑ -17.77777777777778C.
РегÑлÑÑное вÑÑажение test
ÑопоÑÑавлÑеÑÑÑ Ñ Ð»ÑбÑм ÑиÑлом, оканÑиваÑÑимÑÑ Ð½Ð° бÑÐºÐ²Ñ F. ÐолиÑеÑÑво гÑадÑÑов по ФаÑенгейÑÑ Ð¿ÐµÑедаÑÑÑÑ Ð² ÑÑнкÑÐ¸Ñ ÑеÑез ÐµÑ Ð²ÑоÑой паÑамеÑÑ, p1
. ФÑнкÑÐ¸Ñ Ð¿ÐµÑÐµÐ²Ð¾Ð´Ð¸Ñ Ð³ÑадÑÑÑ Ð¿Ð¾ ФаÑенгейÑÑ, пеÑеданнÑе в виде ÑÑÑоки в ÑÑнкÑÐ¸Ñ code>f2c(), в гÑадÑÑÑ Ð¿Ð¾ ЦелÑÑиÑ. ÐаÑем ÑÑнкÑÐ¸Ñ f2c()
возвÑаÑÐ°ÐµÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво гÑадÑÑов по ЦелÑÑиÑ. ÐÑа ÑÑнкÑÐ¸Ñ ÑабоÑÐ°ÐµÑ Ð¿ÑимеÑно Ñак же, как и Ñлаг s///e
в Perl.
function f2c(x) {
function convert(str, p1, offset, s) {
return ((p1 - 32) * 5) / 9 + "C";
}
var s = String(x);
var test = /(\d+(?:\.\d*)?)F\b/g;
return s.replace(test, convert);
}
ÐÑимеÑ: иÑполÑзование ÑÑнкÑии вмеÑÑе Ñ ÑегÑлÑÑнÑм вÑÑажением Ð´Ð»Ñ Ð¸Ð·Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ Ñикла for
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¿ÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ ÑÑÑÐ¾ÐºÑ Ñаблона и пÑеобÑазÑÐµÑ ÐµÑ Ð² маÑÑив обÑекÑов.
ÐÑ Ð¾Ð´Ð½Ñе даннÑе:
СÑÑока, ÑоÑÑоÑÑÐ°Ñ Ð¸Ð· Ñимволов x
, -
и _
x-x_ x---x---x---x--- x-xxx-xx-x- x_x_x___x___x___
ÐÑÑ Ð¾Ð´Ð½Ñе даннÑе:
ÐаÑÑив обÑекÑов. Символ 'x'
ознаÑÐ°ÐµÑ ÑоÑÑоÑние 'on'
, Ñимвол '-'
(деÑиÑ) ознаÑÐ°ÐµÑ ÑоÑÑоÑние 'off'
, а Ñимвол '_'
(нижнее подÑÑÑкивание) ознаÑÐ°ÐµÑ Ð¿ÑодолжиÑелÑноÑÑÑ ÑоÑÑоÑÐ½Ð¸Ñ 'on'
.
[
{ on: true, length: 1 },
{ on: false, length: 1 },
{ on: true, length: 2 }
...
]
Ðод:
var str = "x-x_";
var retArr = [];
str.replace(/(x_*)|(-)/g, function (match, p1, p2) {
if (p1) {
retArr.push({ on: true, length: p1.length });
}
if (p2) {
retArr.push({ on: false, length: 1 });
}
});
console.log(retArr);
ÐÑÐ¾Ñ ÐºÐ¾Ð´ ÑгенеÑиÑÑÐµÑ Ð¼Ð°ÑÑив из ÑÑÑÑ
обÑекÑов в опиÑанном ÑоÑмаÑе без иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñикла for
.
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