2016-03-17 14 views
1

我需要能夠獲得任何html標記之間的所有內容。 目前我使用:正則表達式選擇任何html標記之間的字符串

var result = data.match(/<p>(.*?)<\/p>/g).map(function(val){ 
// validate 
} 

我已經得到的最接近的是:<[a-z1-9]{1,10}>(.*?)<\/[a-z1-9]{1,10}>

但是看着regex tester,這是不正確的。

它沒有關閉匹配標籤,甚至錯過了一些,我錯過了什麼?

我的目標是得到所有標籤之間的任何東西而不是之間的某兩個。

https://regex101.com/r/jR7wZ3/1

+1

也許[DOM方法是安全的(https://jsfiddle.net/uncysdv4/1/)? –

+0

[從字符串中提取HTML標記名稱]的可能重複(http://stackoverflow.com/questions/28975162/extract-an-html-tag-name-from-a-string) – Jeff

+0

相關內容:http:// stackoverflow.com/a/1732454/833146 – xec

回答

0

感謝@WiktorStribiżew

var el = document.createElement('faketag'); 
el.innerHTML = txt; 
var arr = []; 
[].forEach.call(el.childNodes, function(v,i,a) { 
     arr.push(v.innerHTML); 
}); 
console.log(arr); 

https://jsfiddle.net/uncysdv4/1/

相關問題