我有一个来自DOM元素的字符串,其中包含类似于以下内容的内容:
<span class='greenhornet'>Can you catch the green?</span>
我需要知道绿色这个词的位置。
在这种情况下,如果我设置模式/green/
,JS exec()
当然会返回第一次出现的绿色(位置13)。
有没有办法告诉JS正则表达式忽略!
单词绿色,如果它在<
和>
之间,或者是否更方便这样做?
哦,我也不能剥离HTML!
感谢。
答案 0 :(得分:2)
正如评论员(和用户1883592)所建议的那样,剥离HTML或从HTML解析文本是正确的答案。使用带有HTML的正则表达式是一个失败者的游戏;你被警告了。
但是,话虽这么说,如果你真的想玩这个游戏,我首先要确保你的任期和最后一个结束时间之间没有开头括号;换句话说:
var greenRegex = />[^<]+(green)/;
var position = "<span class='greenhornet'>Can you catch the green?</span>".search(greenRegex);
// position = 25, not 13
答案 1 :(得分:0)
您可以获取span元素的innerHTML。不需要正则表达式。