Javascript 如何引用找到的匹配项?
我对regexp模式有一个小问题。我没有regexp知识,所以无法解决它 我有以下案文:Javascript 如何引用找到的匹配项?,javascript,regex,Javascript,Regex,我对regexp模式有一个小问题。我没有regexp知识,所以无法解决它 我有以下案文: var text = "this (is) some (ran)dom text"; 我想捕获()之间的任何内容。因此,在遵循以下步骤后,我提出了以下模式: var re = /(\(\w*\))/g; 这很好用。但我现在要做的是替换找到的匹配项,或者更确切地说是修改。我想用span标记包装找到的匹配项。所以我用了这个代码: var spanOpen = '<span style="color:
var text = "this (is) some (ran)dom text";
我想捕获()
之间的任何内容。因此,在遵循以下步骤后,我提出了以下模式:
var re = /(\(\w*\))/g;
这很好用。但我现在要做的是替换找到的匹配项,或者更确切地说是修改。我想用span标记包装找到的匹配项。所以我用了这个代码:
var spanOpen = '<span style="color: silver;">';
var spanClose = '</span>';
text.replace(re, spanOpen + text.match(re) + spanClose);
您可以在中查看示例。我怎样才能解决这个问题
小提琴中的代码:
var text = "this (is) some (ran)dom text";
var re = /(\(\w*\))/g;
var spanOpen = '<span style="color: silver;">';
var spanClose = '</span>';
var original = "original: " + text + "<br>";
var desired = "desired: this " +spanOpen+"(is)"+spanClose+ " some " +spanOpen+"(ran)"+spanClose+ "dom text<br>";
var output = "output: " + text.replace(re, spanOpen + text.match(re) + spanClose);
var result = original + desired + output;
document.body.innerHTML = result;
var text=“这(是)一些(运行过的)dom文本”;
变量re=/(\(\w*\)/g;
var spanOpen='';
var spanClose='';
var original=“original:“+text+”
”;
var desired=“desired:这个“+spanOpen+”(是)“+spanClose+”一些“+spanOpen+”(ran)“+spanClose+”dom文本
”;
var output=“output:”+text.replace(re,spanOpen+text.match(re)+spanClose);
var结果=原始+期望+输出;
document.body.innerHTML=结果;
如果标题错误或有误导性,我将对其进行更改。方法.replace()
可以将函数作为第二个参数。这会在这里派上用场的
var output = "output: " + text.replace(re, function(match){
return spanOpen + match + spanClose
});
将为每个单独的匹配调用该函数
您还可以在替换字符串中使用“$&”
来引用每个匹配项
var output = "output: " + text.replace(re, spanOpen + '$&' + spanClose);
请参阅:方法.replace()
可以将函数作为第二个参数。这会在这里派上用场的
var output = "output: " + text.replace(re, function(match){
return spanOpen + match + spanClose
});
将为每个单独的匹配调用该函数
您还可以在替换字符串中使用“$&”
来引用每个匹配项
var output = "output: " + text.replace(re, spanOpen + '$&' + spanClose);
请参阅:方法.replace()
可以将函数作为第二个参数。这会在这里派上用场的
var output = "output: " + text.replace(re, function(match){
return spanOpen + match + spanClose
});
将为每个单独的匹配调用该函数
您还可以在替换字符串中使用“$&”
来引用每个匹配项
var output = "output: " + text.replace(re, spanOpen + '$&' + spanClose);
请参阅:方法.replace()
可以将函数作为第二个参数。这会在这里派上用场的
var output = "output: " + text.replace(re, function(match){
return spanOpen + match + spanClose
});
将为每个单独的匹配调用该函数
您还可以在替换字符串中使用“$&”
来引用每个匹配项
var output = "output: " + text.replace(re, spanOpen + '$&' + spanClose);
请参阅:text.match(re)返回一个结果数组,所以您可以循环此数组并用每个项替换字符串,如下所示:
var matches = text.match(re);
var output = "output: " + text;
for (var i = 0; i < matches.length; i++)
{
output = output.replace(matches[i], spanOpen + matches[i] + spanClose);
}
var matches=text.match(re);
var output=“输出:”+文本;
对于(var i=0;i
请参见此文本。match(re)返回一个结果数组,所以您可以循环此数组并用每个项替换字符串,如下所示:
var matches = text.match(re);
var output = "output: " + text;
for (var i = 0; i < matches.length; i++)
{
output = output.replace(matches[i], spanOpen + matches[i] + spanClose);
}
var matches=text.match(re);
var output=“输出:”+文本;
对于(var i=0;i
请参见此文本。match(re)返回一个结果数组,所以您可以循环此数组并用每个项替换字符串,如下所示:
var matches = text.match(re);
var output = "output: " + text;
for (var i = 0; i < matches.length; i++)
{
output = output.replace(matches[i], spanOpen + matches[i] + spanClose);
}
var matches=text.match(re);
var output=“输出:”+文本;
对于(var i=0;i
请参见此文本。match(re)返回一个结果数组,所以您可以循环此数组并用每个项替换字符串,如下所示:
var matches = text.match(re);
var output = "output: " + text;
for (var i = 0; i < matches.length; i++)
{
output = output.replace(matches[i], spanOpen + matches[i] + spanClose);
}
var matches=text.match(re);
var output=“输出:”+文本;
对于(var i=0;i
请参见此