我有以下的HTML作爲我的JavaScript函數的字符串:匹配HTML標記與內容的JavaScript正則表達式
<p>one</p> <p align='center'>two</p>
我想提取這個字符串:(顯然不帶引號)
"onetwo"
能否請您提供一些純粹的JavaScript代碼(jQuery也行......)來獲取標籤的內容?
我有以下的HTML作爲我的JavaScript函數的字符串:匹配HTML標記與內容的JavaScript正則表達式
<p>one</p> <p align='center'>two</p>
我想提取這個字符串:(顯然不帶引號)
"onetwo"
能否請您提供一些純粹的JavaScript代碼(jQuery也行......)來獲取標籤的內容?
使用jQuery你並不需要一個複雜的正則表達式,你可以很容易地解析HTML和使用DOM:
var s = "<p>one</p> <p align='center'>two</p>";
var wrapper = $('<div />').html(s);
var text = wrapper.text();
在這種情況下$(s).text()
本來也工作,但如果你有空閒就會失敗第一級文本(例如<p>1</p>2
),所以我通常避免它。
注意,這裏的結果是"one two"
(不"onetwo"
),因爲你有<p>
標籤之間的空間。
如果這是一個問題,您可以根據您的確切需要,例如使用wrapper.children().text()
或wrapper.find('p').text()
。
+1好玩的技巧.. – 2011-02-28 11:21:03
不使用正則表達式確實是這樣做的關鍵:P – Exelian 2011-02-28 12:12:49
我做了以下的正則表達式來抓住從XML標籤內容。 這隻適用於包含內容且後面有結束標籤的標籤。不會獲得包含其他標籤的標籤的內容。 標籤名稱是捕獲組1和標籤內容是捕獲組2.這將努力獲得的所有內容,包括<,>,」,「和&標籤內容的內部。
<([^\s>]+)\s?[^>]*>(.*)(?:<\/\1)>
不要使用正則表達式http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – RichardTheKiwi 2011-02-28 11:20:29
+1好評。他現在會悔改..:D – 2011-02-28 11:22:00