繁体   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