Javascript RegExp lookbehind

Javascript RegExp lookbehind,javascript,regex,Javascript,Regex,我有以下问题。我想在Javascript中替换以下字符串中的单词“snippet” <p>This is a <span class="snippet-expansion">snippet<span><p> 这是一个片段 但是我想保留class=“snippet expansion” 另一个例子可能是 <p>This is a snippet within a text<p> 这是文本中的一个片段 第二种情况的结果应

我有以下问题。我想在Javascript中替换以下字符串中的单词“snippet”

<p>This is a <span class="snippet-expansion">snippet<span><p>
这是一个片段
但是我想保留class=“snippet expansion”

另一个例子可能是

<p>This is a snippet within a text<p>
这是文本中的一个片段
第二种情况的结果应该是

<p>This is a <span class="highlight-searchterm">snippet</span> within a text<p>
这是文本中的一个片段
通常情况下,我会在正则表达式中使用lookback来实现这一点,但这些在Javascript中是不可用的


有人能帮我吗?

具有前瞻性:

/snippet(?!-expansion)/
参考:

试试这个表达式

var str='<p>This is a <span class="snippet-expansion">snippet<span><p>';

str.replace(/snippet.*?(\W|\s)+/g,function (val){ if(val.trim().match(/\W+/g) && !val.match(/</g)) return val; return val.replace(/snippet/g,'')  });
var str='这是一个片段;

str.replace(/snippet.*?(\W|\s)+/g,函数(val){if(val.trim().match(/\W+/g)和&!val.match(/在结束标记
和开始标记
之间查找文本应该适合您的情况。/p pdiv class=“snippet”data lang=“js”data hide=“false” div class=“代码片段” pre class=“snippet code js lang js prettyprint override”codevar str='p这是一个span class=“snippet expansion”snippetspanp';
var rep=str.replace(/(>[^]*)snippet([^]*[^]*)snippet([^]*[^]*)snippet([^]*jquery解决方案(可以用JS编写)
$('.snippet expansion').text().replace('snippet',my new text'))
谢谢,但我不够清楚。我更新了问题。所以你想用一个空格来包装一个单词吗?如果是,请看这里:为了清楚。在我的应用程序中,用户在文本字段中输入一些文本,例如“sni”。我在数据库中搜索文本中包含sni的所有条目,并将其传递回前端。因此,您的案例不适用于“sni”一词。我仍然对您试图执行的操作感到有点困惑,但如果您调整其匹配字符,则向前看仍应有效。
s(?!\w|\s|“|-|=)
sni(?!\w|\s |”|-|=)