我有这个字符串
@test <span class="mention">@test</span> @test2 <span class="mention">@test</span>`
我想在Javascript
中匹配以span开头的所有单词开头我创建了用于匹配span对象的RegExp
/<span class="mention"((.*)data-mention="\d+")?>@\w+<\/span>/g
但我不知道如何获取不在span元素内的元素!
答案 0 :(得分:2)
这是尝试提取所需的
<强>正则表达式强>
/(@\w+\b)(?![^>]*?<\/span>)/g
测试字符串
@test <span class="mention">@test</span> @test2 <span class="mention">@test</span>`
<强>结果强>
@test
@test2
<强>演示强>
请注意,这不是一个万无一失的解决方案,它只是基于您的测试字符串。
答案 1 :(得分:0)
不要使用正则表达式。它是HTML,所以使用DOM操作方法:
var s = '@test <span class="mention">@test</span> @test2 <span class="mention">@test</span>';
var e = document.createElement("div");
e.innerHTML = s;
var spans = e.getElementsByTagName("span");
while (spans.length > 0) {
e.removeChild(spans[0]);
}
console.log(e.innerHTML);
这样您就可以使用@test @test2
,然后可以使用正则表达式进行拆分或匹配。