将单词包装在标签中,保留标记
Wrap words in tags, keep markup
例如,我有一个带有标记的字符串(来自html节点):
hello, this i sdog
"h<em>e<strong>llo, thi</strong>s i</em><strong>s d</strong>og"
在其中找到一些单词(让我们说"hello"和"dog"),将它们包装在一个跨度中(突出显示)并保存所有标记的最正确方法是什么?
所需的输出是这样的(注意正确关闭的标签)
<span class="highlight">h<em>e<strong>llo</strong></em></span><strong>,</strong> <em><strong>thi</strong>s<em> i</em><strong>s <span class="highlight"><strong>d</strong>og</span>
看起来和它应该的一样:
hello,this i sdog
来了:
//Actual string
var string = "h<em>e<strong>llo, thi</strong>s i</em><strong>s d</strong>og";
//RegExp to cleanup html markup
var tags_regexp = /<'/?[^>]+>/gi;
//Cleaned string from markup
var pure_string = string.replace(tags_regexp,"");
//potential words (with original markup)
var potential_words = string.split(" ");
//potential words (withOUT original markup)
var potential_pure_words = pure_string.split(" ");
//We're goin' into loop here to wrap some tags around desired words
for (var i in potential_words) {
//Check words here
if(potential_pure_words[i] == "hello," || potential_pure_words[i] == "dog")
//Wrapping...
potential_words[i] = "<span class='"highlight'">" + potential_words[i] + "</span>";
}
//Make it string again
var result = potential_words.join(" ");
//Happy endings :D
console.log(result);
相关文章:
- 分派点击事件并保留击键修饰符
- 在<页眉>标签
- Ckeditor-plugin:插入虚假元素add不情愿<p>标签前后
- 使用 struts 标签和 Javascript 的动态行为保留表单中的值
- 在 ChartJS 中截断画布标签,同时在工具提示中保留完整的标签值
- JavaScript 不会保留新的标签内容来执行函数
- JavaScript 正则表达式,用于保留 span 标签并删除其他标签
- 为什么新创建的输入标签不会保留在页面上
- 将单词包装在标签中,保留标记
- 使用 PHP 查找并删除一些 javascript 标签,但保留另一个标签
- HTML/JQuery:如何打开文件;不闪烁新标签;并保留当前页面状态
- 玉用保留字作标签
- 如何在调用函数后保留标签的值
- 多选列表即时搜索正常工作,但需要保留
- Jquery循环页面缩略图图像-保留主图像链接标签
- 过滤多选择框后,如何保留optgroup标签?
- 在
带有's的标签,但保留其他标签
- 删除html标签,但保留断点
- 在树状地图高图中保留父数据标签
- 删除HTML标签,但保留内部HTML