【发布时间】:2011-09-11 18:01:46
【问题描述】:
我正在尝试在 HTML 字符串中查找给定的单词并在其周围添加一个跨度。
我现在做的是这样的:
function find(what:String,where:String)
{
var regexp:RegExp=new RegExp(what,'gi');
return where.replace(regexp,'<span>$&</span>');
}
它适用于不在 HTML 标记内的单词。 我想要的是忽略 HTML 标签内的那些。
示例: find("西班牙")
输入:
The rain in <b class="spain">Spain</b> stays mainly in the <i data-test="Spain">plain</i>.
输出:
The rain in <b class="spain"><span>Spain</span></b> stays mainly in the <i data-test="Spain">plain</i>.
请问我怎样才能做到这一点?
【问题讨论】:
-
为什么会得出需要正则表达式的结论?您提出问题,我们会解决问题。
-
你可以访问 DOM 吗?如果您不必自己解析 HTML,那就容易多了。
-
我将它作为一系列字符串连接起来输出。
标签: javascript regex