jQuery:包装一个匹配正则表达式的字符串
在某个元素中,我需要选择与某个正则表达式匹配的不同字符串并用标签包装它们。 我怎样才能做到这一点 ?
我试过了 :
var str = jQuery("#my_div").html(); var regex = "\([az]{2}\)"; jQuery("#my_div").html(str.replace(regex, "$1"));
..但是这会包裹整个元素而不是元素中的选定字符串。
您的示例的问题是您没有捕获组,将正则表达式更改为(\([az]{2}\))
以下是html 中正则表达式替换的示例: http : //jsfiddle.net/gibble/NYVWg/
bla bla this (is) some text this (is) some text bla bla var oldHtml = $('#test').html(); var newHtml = oldHtml.replace(/(\([az]{2}\))/g,"$1"); $('#test').html(newHtml);
鉴于您的正则表达式中包含子表达式,您的代码应该可以正常工作。 看看这个jsfiddle :
HTML:
foo bar my_regex foo bar
JS:
var str = jQuery("#my_div").html(); var regex = /(my_regex)/; jQuery("#my_div").html(str.replace(regex, '$1'));
CSS:
.red { color : red; }