[英]javascript RegExp - get count of all html tags total characters
我試圖得到所有匹配的HTML字符的計數(長度),包括開放( <tag>
)和結束( </tag>
),包括任何attributes
請考慮以下HTML:
<div>
<a href="#">link</a>
<span>some text</span>
</div>
HTML字符長度計數為40 (因為它計算<div><a href="#"></a><span></span></div>
)
但是在javascript中使用它時會出現錯誤
見jsfiddle
出錯的原因是你的正則表達式包含一個正面的后觀(?<=\\s)
- 一個正則表達式的Javascript實現不提供的功能(參見Javascript中的模仿Lookbehinds )。 (更確切地說,錯誤是由未轉義后的?
(
當沒有后跟!
, =
或:
等)引起的。
您提供給工作示例的鏈接是使用ActionScript 3編寫的Flex應用程序,其中包含正面的lookbehinds。
你還需要將添加g
標志您正則表達式字面年底拿到所有比賽的數組match
,那么你就可以總結它們的長度。
這是一個工作示例,刪除了正向lookbehind並添加了g
標志: jsfiddle 。
它顯示163
的長度看起來是正確的,但我會把計數留給你。
您可能需要添加一些代替lookbehind的東西或以其他方式編輯正則表達式 - 我也會讓您去解決這個問題。
存在語法錯誤。
你必須逃避你的正斜杠/
因為它也是你的分隔符。
/(<(?:[A-Za-z_:][\w:.-]*(?=\s)(?!(?:[^>"\']|"[^"]*"|\'[^\']*\')*?(?<=\s)\s*=)(?!\s*\/?>)\s+(?:".*?"|\'.*?\'|[^>]*?)+|\/?[A-Za-z_:][\w:.-]*\s*\/?)>)/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.