gpt4 book ai didi

javascript - 正则表达式通过 html 标签和普通字符串中的空格分隔字符串

转载 作者:行者123 更新时间:2023-12-03 06:54:20 24 4
gpt4 key购买 nike

在这上面花了很多时间。这是我当前的代码状态

var str = '<div class="x"><p>this is <span> example </span>text</p></div>';
var arr = str.split(/\s*(<[^>]*>)/g );
arr = arr.filter(function(n){ return n != '' });
alert(arr);

不是正则表达式爱好者,但努力实现输出

["<div class="x">", "<p>", "this is", "<span>", " example", "</span>", "text", "</p>", "</div>"]

我的期望是什么

["<div class="x">", "<p>", "this", "is", "<span>", " example", "</span>", "text", "</p>", "</div>"]

差异是预期的,目前的差异非常小。我所需要的是,如果任何字符串有多个术语,则它们也需要作为单独的字符串获取,如果它整体上不包含任何 html 标签。

看看第三个元素的差异。如果可能的话,我想在相同的正则表达式中实现。否则稍后做一些处理就可以了。

Play Ground .

注意:我在后端使用 Jsoup 进行进一步处理。任何 Jsoup/Java 解决方案也可以

最佳答案

试试这个:

var str = '<div class="x"><p>this is <span> example </span>text</p></div>';
var arr = str.split(/\s*(<[^>]*>)/g );
arr = arr.filter(function(n){ return n !== ''; });
var c = [];
for(var i =0; i <arr.length; i++){
if(arr[i].includes("<")){
c.push(arr[i]);
}
else{
var u = arr[i].split(" ");
for(var j = 0; j < u.length; j++){
c.push(u[j]);
}
}
}
c = c.filter(function(n){ return n !== ''; });
console.log(c);
alert(c);

关于javascript - 正则表达式通过 html 标签和普通字符串中的空格分隔字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349351/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com