簡體   English   中英

使用Javascript(regex)查找不在HTML標記內的文本

[英]Find text not within HTML tags with Javascript (regex)

我有一個來自DOM元素的字符串,其中包含類似於以下內容:

<span class='greenhornet'>Can you catch the green?</span>

我需要知道綠色一詞的位置。

在這種情況下,如果我設置了模式/green/ ,則JS exec()當然會返回綠色的第一個匹配項(位置13)。

有沒有辦法告訴JS正則表達式忽略! 單詞green ,如果它介於<>之間,或者有更簡單的方法嗎?

哦,我也不能只剝離HTML!

謝謝。

正如評論者(和user1883592)所建議的那樣,在此處剝離HTML或從HTML中解析文本是正確的答案。 在HTML上使用正則表達式是失敗者的游戲; 您已被警告。

但是,話雖如此,如果您真的想玩這個游戲,我首先要確保您的任期與最后一個結束括號之間沒有任何括號。 換一種說法:

var greenRegex = />[^<]+(green)/;
var position = "<span class='greenhornet'>Can you catch the green?</span>".search(greenRegex);
// position = 25, not 13

您可以獲取span元素的innerHTML。 無需正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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