2010-02-09 16 views
0

問題:我試圖在代碼標籤的內容中設置某些關鍵字的風格(例如「函數」),從出現的C風格註釋中排除這些關鍵字在那個內容中。 解決方案:我相信,將代碼標記的innerHTML字符串與正則表達式匹配,即排除C風格的註釋可以完成這項工作...Javascript正則表達式 - 捕捉除C風格評論以外的所有內容

有什麼建議嗎?

+0

等等...你想用正則表達式解析(內部)HTML嗎?這是否對重要/安全至關重要? – 2010-02-09 10:07:52

+1

看看http://alexgorbatchev.com/wiki/SyntaxHighlighter,看看他們是如何做到的 – AutomatedTester 2010-02-09 10:09:53

回答

1

C樣式的註釋可以嵌套,因此不適合正則表達式。

匹配一個嵌套的C風格註釋很簡單:

/\*.*?\*/ 

允許的嵌套結果一層:

/\*(?:(?!\*/|/\*).)*+(?:/\*(?:(?!\*/|/\*).)*+\*/(?:(?!\*/|/\*).)*+)*+.*?\*/ 

(從RegexBuddy的庫中提取的)。試着想象如果你允許更多的話會發生什麼。

我將你的問題理解爲「正則表達式是否可以匹配C風格註釋之外的文本塊?」 - 這會比這更復雜。想象一下像"This is used to start a C comment: /*"這樣的字符串。此外,如果您仍然想嘗試此操作,那麼您需要向後看哪些JavaScript不支持。

相關問題