我需要检测一些随机正则表达式,然后将它们应用于每个表达式,例如:
Match[0]
替换为<span class='found'> Match[0]</span>
Match[1]
替换为<span class='found'> Match[1]</span>
Match[n]
替换为<span class='found'> Match[n]</span>
我试过这个
.replace(randomregexp, "<span class='found'>$1</span>");
但不显示Match[0]
,而是显示$1
。
我的代码:
$("#query, article").keyup(
function change() {
if (document.getElementById("query").value == "");
else {
texts = document.getElementById("query").value;
regexpr= new RegExp(texts,"g");
document.getElementsByTagName("article")[0].innerHTML = $("article").text().replace(regexpr, '<b class="found">$1</b>');
}
}
);
答案 0 :(得分:0)
如果您可以发布模式代码,那么会有所帮助,但请尝试.wrap('<span class="found"></span>)
答案 1 :(得分:0)
您需要使用wrap
功能。尝试这样的事情:
.wrap('<span class="found"></span>')
或者您可以使用$&
来访问匹配的字符串,如下所示:
.replace(randomregexp, "<span class='found'>$&</span>");
答案 2 :(得分:0)
确保将您的匹配包装在(
和)
中。如果没有匹配的文字,则只显示$1
。
texts = '('+document.getElementById("query").value+')';
那么$ 1应该适用于匹配的子串......
'hello'.replace(/(\w+)/,"<span class='found'>$1</span>")
// Outputs: "<span class='found'>hello</span>"