4

我有一个来自 DOM 元素的字符串,其中包含类似于以下内容的内容:

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

我需要知道green这个词的位置。

在这种情况下,如果我设置了一个模式/green/,JSexec()当然会返回第一次出现的绿色(位置 13)。

有没有办法告诉 JS 正则表达式忽略!这个词green,如果它介于<and>或者有没有更简单的方法来做到这一点?

哦,我也不能只删除 HTML!

谢谢。

4

2 回答 2

2

正如评论者(和 user1883592)所建议的那样,剥离 HTML 或从 HTML 中解析文本是正确的答案。在 HTML 中使用正则表达式是输家的游戏;你已经被警告过了。

但是,话虽如此,如果你真的想玩那个游戏,我首先要确保你的任期和最后一个右括号之间没有左括号;换句话说:

var greenRegex = />[^<]+(green)/;
var position = "<span class='greenhornet'>Can you catch the green?</span>".search(greenRegex);
// position = 25, not 13
于 2012-12-20T01:06:33.227 回答
0

您可以获得 span 元素的 innerHTML。不需要正则表达式。

于 2012-12-20T00:17:57.567 回答