正则表达式 - 选择不在班级范围内的单词

时间:2013-09-04 14:41:10

标签: regex replace html-parsing

我有以下JS -

var pattern = new RegExp("(\\b" + value + "\\b)", 'gi')
if (pattern.test(text)) {
    text = text.replace(pattern, "<span class='class1'>$1</span>");
}

(e.g. value = 'text', text = 'Simple text <span class='class1'>simple text</span> text.')

用这个JS我用span标签包装所有'text'字样。但在这种情况下,我将使用span标签将第二个“文本”字双重包裹起来。我需要替换所有相等的值变量的单词,但如果这个单词已经在Class1的范围内,我需要跳过这个单词。

实施例: 初始文本是:“当使用替代方案时,顺序很重要,因为匹配算法将首先尝试匹配最左边的替代方案。”我需要包含所有“使用替代品”和“替代品”字样。首先我们替换'使用替代品',结果将是:

"When <span class="class1">using alternative</span>, the order is important since the matching algorithm will attempt to match the leftmost alternative first."

然后我们替换“替代”:

"When <span class="class1">using <span class="class1">alternative</span></span>, the order is important since the matching algorithm will attempt to match the leftmost <span class="class1">alternative</span> first.".

所以我有第一个“替代”包裹着2个span标签。而且我不需要第二个用于“替代”的标签,只需“使用替代”即可。

0 个答案:

没有答案