我正在努力将 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(使用前将#替换为@)