Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript正则表达式,以提取content.html()以字符串形式返回的代码_Javascript_Jquery_Regex - Fatal编程技术网

javascript正则表达式,以提取content.html()以字符串形式返回的代码

javascript正则表达式,以提取content.html()以字符串形式返回的代码,javascript,jquery,regex,Javascript,Jquery,Regex,我需要存储一些javascript语句,以便稍后在撤销/重做机制中实现 我的语句包括设置contentdiv的HTML,以及编辑全局变量i$(“#content”)可以包含许多div,每个div都有自己的内联样式属性。我之前存储的多个语句如下: storedcontent = $('#content').html(); statements = "$('#content').html("+storedcontent+"); i = " +i+ "; "; 然后我会使用eval(str)。 语句

我需要存储一些javascript语句,以便稍后在撤销/重做机制中实现

我的语句包括设置
content
div的HTML,以及编辑全局变量
i
$(“#content”)
可以包含许多
div
,每个div都有自己的内联样式属性。我之前存储的多个语句如下:

storedcontent = $('#content').html();
statements = "$('#content').html("+storedcontent+"); i = " +i+ "; ";
然后我会使用
eval(str)
语句
变量中可能存储的内容示例如下:

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;
content.html(“”);
i=3;
(注意,在.html()语句之后有一个变量赋值)

因此,我之前所做的只是执行
eval(statements)
,以执行
.html()
I=3
语句

但是我意识到
eval()
有问题。因此,在保留
statements
变量中的两条(可能还有更多)javascript语句的同时,我只想提取
$(“#content').html()
中括号之间的内容

因此,我希望正则表达式从变量
语句中提取,只提取
$(“#content').html()返回的内容,即
存储内容中的内容。这样,我就可以直接执行
$('#content').html(storedcontent),而不是使用eval

我知道我可以很容易地使用子字符串,但我想知道如何使用正则表达式


我试图编辑这个问题,但我认为它可能仍然令人困惑。为了简化,也许我只是在问,如何使用regex捕获两个不同子字符串之间的字符串,在本例中是
$('#content').html(

我真的不明白你为什么不使用storedcontent,但无论如何

“i”变量中有什么?如果是整数,则RegExp应为:

var storedcontent2 = statements.match(/#content\'\)\.html\((.*)(\);\s*i\s*=\s*\d+\s*;\s*)$/)[1];

为什么不直接使用
storedcontent
变量呢?你能把问题弄清楚一点吗?我试着把问题弄清楚一点。我不能使用
storedcontent
,因为它只用于构建由多个语句组成的statements变量。我只是在稍后当用户点击
undo
按钮时才使用这个statements变量,然后执行由许多javascript命令组成的
statements
。但这并不简单,所以我现在想专门从中提取html。谢谢,我尝试了这个方法,但得到了错误:
TypeError:statements.match(…)为null
。是的
i
保存一个整数,但我假设当语句
i=3
存储在字符串
语句
中时,它已经成为一个字符串了,对吗?因此,当我稍后尝试从
语句中提取
$(“#content').html()
时,可能所有内容都是字符串?