Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何引用找到的匹配项?_Javascript_Regex - Fatal编程技术网

Javascript 如何引用找到的匹配项?

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:

我对regexp模式有一个小问题。我没有regexp知识,所以无法解决它

我有以下案文:

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
请参见此