我正在寻找类似于这个插件
http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html的东西
但我面临的问题是上述插件不允许您突出显示html中的单词.
所以如果你正在寻找我的文字
里面的html喜欢
this is <a href="#">my</a> text that needs highlighting
你不会得到任何突出显示.
有没有办法突出显示文本,而忽略之间的任何html标签?
解决方法
我搞了一些RegEx,允许HTML标签位于空格字符的位置:
<div id="test">this is <a href="#">my</a> text that needs highlighting</div>
JavaScript的:
var src_str = $("#test").html(); var term = "my text"; term = term.replace(/(\s+)/,"(<[^>]+>)*$1(<[^>]+>)*"); var pattern = new RegExp("("+term+")","i"); src_str = src_str.replace(pattern,"<mark>$1</mark>"); src_str = src_str.replace(/(<mark>[^<>]*)((<[^>]+>)+)([^<>]*<\/mark>)/,"$1</mark>$2<mark>$4"); $("#test").html(src_str);
尝试这里:http://jsfiddle.net/UPs3V/