我需要存储一些 javascript 语句,以便稍后在撤消/重做机制中实现。
我的陈述包括设置content
div 的 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(
和);
?