gpt4 book ai didi

javascript - 正则表达式:在某些情况下不起作用

转载 作者:行者123 更新时间:2023-11-30 10:12:28 25 4
gpt4 key购买 nike

我是 regex 的新手并且正在练习它。首先检查这段代码:

$(".app").each(function(){
var raw_string = $(this).html();
var changed_string = raw_string.replace(/^\{\{|\}\}$/g, "");
$(this).html(eval(changed_string));
});

我正在尝试查看 .app 的 HTML 并搜索以 mustache {{ 开头并以 mustache }} 结尾的任何内容。就像 Mustache.js 一样。首先,我将其替换为一个空字符串,然后将 .app 的 HTML 设置为 eval(changed_string)。所以如果我尝试:

<div class="app">

{{2+2}}

</div>

工作绝对精细打印 4。但是:

问题

如果我向 .app 添加一些额外的 HTML:

<div class="app">

2 and 2 are: {{2+2}}

</div>

输出是:

2 and 2 are: {{2+2}}

发生了什么???

JsFiddle Demonstration

最佳答案

修复表达式(匹配字符串的开头/结尾)仍然不能解决问题;您将尝试评估整个字符串,包括“2 和 2 是:...”。

试试这个,替换每个 {{...}} 对中的内容:

$(".app").each(function(){
var raw_string = $(this).html();
var changed_string = raw_string.replace(/\{\{(.+)\}\}/g,
function( match, p1 ) {
return(eval(p1));
}
);
$(this).html(changed_string);
});

关于javascript - 正则表达式:在某些情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25713387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com