我需要匹配 HTML 中的单词,但需要跳过标签(具有特定类)及其内容。例子:<p> There is my way <span class="abc"> way beyond someone </span></p>我只需要匹配第一个way单词。直到现在我使用单词边界来选择单词。/\b(way)\b/ig但在以下情况下失败。<p> There is nothing. <span class="abc"> Way beyond someone </span></p>在这个声明中,我不想匹配任何东西,因为way它在span.abc元素内部。我试过^运营商,但似乎没有用。IE/(\b)way(\b)^("abc">the)/ig
2 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
我用另一种方法尝试过......它返回匹配的字符串,没有“Way”这个词......
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])
}
}
希望对您有所帮助...
慕婉清6462132
TA贡献1804条经验 获得超2个赞
我不知道一种方法来做你想做的事,但你可以对所有匹配使用一个正则表达式,对你想要丢弃的那些使用另一个正则表达式,然后只在一个匹配中使用匹配而不在另一个匹配中使用。在您的示例中:
way
匹配该词出现的所有时间
<span.*?>(.|\n)*?way(.|\n)*?<\/span>
匹配所有 span 元素。然后你不能得到第一个正则表达式的所有匹配项,而第二个正则表达式不匹配。
添加回答
举报
0/150
提交
取消