我需要存储一些 javascript 语句,以便稍后在撤消/重做机制中实现。
我的陈述包括设置contentdiv 的 HTML 和编辑全局变量i。$('#content')它可以包含许多divs,每个都有自己的内联样式属性。我以前是这样存储多个语句的:
storedcontent = $('#content').html();
statements = "$('#content').html("+storedcontent+"); i = " +i+ "; ";
然后我会eval(str);在按下撤消按钮时使用 , 。可能存储在statements变量中的示例如下:
content.html('<div id="left" class="margin-line" style="top: 15px; left: 15px; width:1px; height: 317px; border-right:1px dotted gray;"></div> <div id="top" class="margin-line" style="top: 14px; left: 16px; height:1px; width: 569px; border-bottom:1px dotted gray; "></div>');
i = 3;
(请注意,在 .html() 语句之后有一个变量赋值)。
所以我之前所做的只是简单地做eval(statements), 以便同时执行 the.html()和i=3语句。
但我意识到eval()有问题。因此,在保留statements变量中的两个(并且可能还有更多)javascript 语句的同时,我只想提取$('#content').html().
所以我想要一个正则表达式从变量中提取statements,只有返回的$('#content').html()内容,即我在 中的内容storedcontent。这样,我可以直接做,而不是使用 eval$('#content').html(storedcontent);
我知道我可以轻松地使用子字符串,但我想知道如何使用正则表达式来做到这一点。
我试图编辑这个问题,但我认为它可能仍然令人困惑。为了简化,也许我只是在问,如何使用正则表达式来捕获两个不同子字符串之间的字符串,在这种情况下$('#content').html(和);?