簡體   English   中英

javascript RegExp - 獲取所有html標簽總數的計數

[英]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>

這是工作的regExp(在gskinner.com上)

但是在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.

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