Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.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_Html_Regex_Match - Fatal编程技术网

Javascript正则表达式是否放弃特定html标记中的匹配项并匹配其他标记?

Javascript正则表达式是否放弃特定html标记中的匹配项并匹配其他标记?,javascript,html,regex,match,Javascript,Html,Regex,Match,我需要匹配HTML中的单词,但需要跳过标记(带有特定类)及其内容。 例如: <p> There is my way <span class="abc"> way beyond someone </span></p> 在这句话里,我不知道;我不想匹配任何内容,因为way在span.abc元素中 我尝试了^操作符,但似乎不起作用。i、 e./(\b)way(\b)^(“abc”>the)/ig我不知道怎么做,但是你可以对所有匹配使用一个正则表达式,对

我需要匹配HTML中的单词,但需要跳过标记(带有特定类)及其内容。 例如:

<p> There is my way <span class="abc"> way beyond someone </span></p>
在这句话里,我不知道;我不想匹配任何内容,因为
way
span.abc
元素中


我尝试了
^
操作符,但似乎不起作用。i、 e.
/(\b)way(\b)^(“abc”>the)/ig

我不知道怎么做,但是你可以对所有匹配使用一个正则表达式,对要放弃的使用另一个正则表达式,然后只在一个匹配中使用匹配,而不使用另一个。 在您的示例中:

way
匹配此单词出现的所有时间

<span.*?>(.|\n)*?way(.|\n)*?<\/span>
(.|\n)*?方式(.|\n)*?
匹配所有跨度元素。
那么你就不能得到第一个正则表达式的所有匹配项,因为第二个正则表达式不匹配。

我用另一种方法尝试了。。。。 它返回匹配的字符串,但不包含单词“Way”

var str=“什么都没有。远远超过某人

”; 变量x=str.split(“”) //控制台日志(x);
对于(var i=0;i可能重复的不使用正则表达式来解析HTML。@Barmar我知道我们不应该使用正则表达式。但在某些情况下,在处理海量数据时,您选择了各种可能的方法来减慢查询速度。查询DOM速度太慢,并且多年来对理论非常了解,请在这方面提供帮助e、 我被困了4个小时。@esqew这个问题充满了理论。我已经厌倦了大部分的例子。它不应该那么复杂。请重新阅读这个问题。HTML中的单词应该被跳过,并且不匹配。你的解决方案正好相反。@RajanVerma编辑了答案……希望这就是你要问的d、 …请再次阅读问题。您的解决方案还将选择这些元素

<span.*?>(.|\n)*?way(.|\n)*?<\/span>
var str="<p> There is nothing. <span class=\"abc\"> Way beyond someone 
</span></p>";
var x=str.split(" ")
//console.log(x);
for(var i=0;i<x.length;i++)
{
    //console.log(x[i])
    if(x[i]!="Way")
{
    console.log(x[i])

}

}