2016-12-04 22 views
0

我想用正則表達式/<[^>]*>/g使用JavaScript正則表達式匹配所有的HTML標籤,如果屬性值可以有「>」字符

匹配字符串中的所有HTML標籤,但一些標籤有值與「>」屬性,如<div :if="x > 1">,結果只能得到<div :if="x>

如何修改RegEx來解決這個問題?


其實,我不需要匹配所有真正有效的html標籤。我只需要匹配所有<***>,'>'不得在引號中。

+4

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 :) –

+1

當心來自ZA̡͊͠͝LGΌ – mplungjan

+0

@Quentin是屬性名稱:if:有效標記。我無法在任何地方找到答案。 – synthet1c

回答

0

如果您有解析的HTML,則可以使用document.querySelectorAll的css選擇器來執行爲您查找元素的操作。

'[\\:if*=\\>]'使用轉義字符\\您可以直接搜索的標記名:if並與*=選擇,你可以找到>(逃脫)在該屬性的值的任何地方。

Im與@JonathanLowowski在此上。屬性名稱:if看起來不正確,並可能在IE中失敗。但它看起來像一個沒有名稱空間的名稱空間屬性。

const elements = document.querySelectorAll('[\\:if*=\\>]') 
 

 
console.log(elements)
<div :if="x > 1"></div> 
 
<div :if="x"></div>

相關問題