我正在努力(或根本没有)用JavaScript执行正则表达式任务:
我有一个像这样的字符串:
Foo <span class="underline">Bar</span><span>asdasasaff</span> Baz
现在,我想执行正则表达式(也欢迎使用替代方法)操作,以获取不封装在span标签中的匹配项数组,因此在此示例['Foo ', ' Baz']
中。
我尝试了很多方法,最后一次尝试使用此正则表达式:
(.(?!(<span\b[^>]*>(.*?)<\/span>)))*$
所以我要查找跨度并“反转”匹配项,但这是行不通的。
我在这里有一个在线示例:https://regex101.com/r/JTPx4r/1
有人可以帮助我获得想要的输出吗?
非常感谢您!
答案 0 :(得分:1)
对您有用吗?
$("div").find("span").text("");
var w = $("div").text();
console.log(w.split(" ").filter(a => a)); // updated as per @SteeveDroz's suggestion
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>Foo <span class="underline">Bar</span><span>asdasasaff</span> Baz</div>
答案 1 :(得分:1)
我不确定这是否适合您,但是...
'Foo <span class="underline">Bar</span><span>asdasasaff</span> Baz'.split(/<span[^>]*>.*?<\/span>/g)
基本思想-按与标签匹配的正则表达式进行划分。