Javascript 正则表达式:如果前面有 href=" 则排除结果

2023-12-09

我正在努力将 Javascript 中的字符串替换为正则表达式匹配模式。 我想替换 {{ 的所有匹配项$myparam}} 被 span 标签包围。 这是可行的(参见下面的代码)。但我想防止在匹配前面有 href= 时进行替换。

例子:href="{{$myparam}}不得更换。{{$myparam}}必须更换。 myparam 可以是任何文本字符串。

  var highlighted = html.replace(/(\{\{(.*?)\}\})/g, function highlight(x) {
       return "<span class='highlight'>" + x + "</span>";
   });

我已经检查了其他线程中的大量示例,但找不到适合我的情况的解决方案。


你可以使用

var subject = 'href="{{$myparam}}" or any other {{$myparam}}';
var regex = /"[^"]*"|(\{\{(.*?)\}\})/g;

replaced = subject.replace(regex, function(m, group1) {
    if (typeof group1 == 'undefined') return m;
    else return "<span class='highlight'>" + group1 + "</span>";
});
alert(replaced);
# href="{{$myparam}}" or any other <span class='highlight'>{{$myparam}}</span>

See regex101.com 上的演示.


The idea here is to check for
not_interesting|not_interesting_either|(very_interesting)

并检查是否存在捕获的组。您可以将任何不感兴趣的内容放在左侧,如下例所示:"[^"]*"(即双引号之间的任何内容)。
如果您想了解更多有关该主题的信息,看看这里.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript 正则表达式:如果前面有 href=" 则排除结果 的相关文章

随机推荐