簡體   English   中英

javascript正則表達式,用於提取字符串中content.html()返回的代碼

[英]javascript regular expression to extract the code returned by content.html() in a string

我需要存儲一些javascript語句,以便以后在撤消/重做機制中實現。

我的語句包括設置content div的HTML,以及編輯全局變量i $('#content')可以包含多個divs ,每個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) ,以便同時執行.html()i=3語句。

但是我已經意識到eval()有問題。 因此,雖然在statements變量中保留了兩個(可能還有更多)javascript語句,但我只想提取$('#content').html()括號之間的$('#content').html()

所以我想要一個正則表達式從變量statements提取,僅$('#content').html()返回的$('#content').html() ,即我存儲內容中的storedcontent 這樣,不用使用eval,我可以直接執行$('#content').html(storedcontent);

我知道我可以輕松使用子字符串,但是我想知道如何使用正則表達式。

我試圖編輯問題,但我認為它可能仍然令人困惑。 為了簡化,也許我只是問,如何使用正則表達式來捕獲兩個不同子字符串之間的字符串,在本例中$('#content').html();

我真的不太明白為什么您不使用storedcontent,而是使用。

“ i”變量中包含什么? 如果是整數,則RegExp應該為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM