Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript(正则表达式)查找不在HTML标记中的文本_Javascript_Regex - Fatal编程技术网

使用Javascript(正则表达式)查找不在HTML标记中的文本

使用Javascript(正则表达式)查找不在HTML标记中的文本,javascript,regex,Javascript,Regex,我有一个来自DOM元素的字符串,其中包含类似于以下内容的内容: <span class='greenhornet'>Can you catch the green?</span> 你能赶上绿灯吗? 我需要知道绿色这个词的位置 在这种情况下,如果我设置了一个模式/green/,JSexec()当然会返回第一个出现的green(位置13) 有没有办法告诉JS regexp忽略绿色这个词,如果它介于和code>之间,或者有更简单的方法吗 哦,我也不能直接去掉HTML 谢谢。

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

<span class='greenhornet'>Can you catch the green?</span>
你能赶上绿灯吗?
我需要知道绿色这个词的位置

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

有没有办法告诉JS regexp忽略
绿色这个词,如果它介于
和code>之间,或者有更简单的方法吗

哦,我也不能直接去掉HTML


谢谢。

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

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

但是,也就是说,如果你真的想玩这个游戏,我首先要确保在你的任期和最后一个任期之间没有开始括号;换言之:

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

var greenRegex=/>[^您可以使用
document.getElementsByClassName
例如吗?使用DOM检索所有文本节点,连接文本节点内容,然后进行搜索。这将包括匹配“green hornet”这样的情况,即使按HTML拆分,例如
green
hornet。为什么不能删除HTML?