jQuery:包装一个匹配正则表达式的字符串

dra*_*035 3 regex jquery

在某个元素中,我需要选择与某个正则表达式匹配的不同字符串,并用标签包装它们.我怎样才能做到这一点 ?

我试过了 :

var str = jQuery("#my_div").html();
var regex = "\([a-z]{2}\)";
jQuery("#my_div").html(str.replace(regex, "<span>$1</span>"));
Run Code Online (Sandbox Code Playgroud)

..但是这会包裹整个元素而不是元素中的选定字符串.

Caf*_*eek 5

您的示例的问题是您没有捕获组,将正则表达式更改为 (\([a-z]{2}\))

以下是html 中正则表达式替换的示例:http://jsfiddle.net/gibble/NYVWg/

<style>span.highlight { color: purple; }?</style>
<body>bla bla <div id="test">this (is) some text this (is) some text</div> bla bla?<body>

var oldHtml = $('#test').html();
var newHtml = oldHtml.replace(/(\([a-z]{2}\))/g,"<span class='highlight'>$1</span>");
$('#test').html(newHtml);?
Run Code Online (Sandbox Code Playgroud)