gpt4 book ai didi

javascript - 正则表达式 - 匹配列表和重复标签的范围

转载 作者:行者123 更新时间:2023-11-30 08:19:27 25 4
gpt4 key购买 nike

我有一个 html 字符串:

"this is <b>bold</b>, and then again - <b>another bolded</b> one"

我想要的结果是得到所有标签的列表+每个标签的索引

results = [ 
{
tag: '<b>bold</b>',
text: 'bold',
index: 8
},

{
tag: '<b>another bolded</b>',
text: 'another bolded',
index: 38
}

]

我尝试使用这个正则表达式

/\<b\>(.*)\<\/b\>/

但它给了我这个结果

results = [ 
{
tag: '<b>bold</b>, and then again - <b>another bolded</b>',
text: 'bold</b>, and then again - <b>another bolded',
index: 8
}
]

我现在使用的这个 javascript 是:

var func = function() {
var text = "this is <b>bold</b>, and then again - <b>another bolded</b> one";
var match = text.match(/\<b\>(.*)\<\/b\>/);

var result = [
{
tag: match[0],
text: match[1],
index: match.index
}
]

return result;
}

最佳答案

您可以使用replace 来循环查找标签、文本和索引的字符串:

const string = "this is <b>bold</b>, and then again - <b>another bolded</b> one";
const matches = [];

string.replace(/<b>(.*?)<\/b>/g, (tag, text, index) => {
matches.push({tag, text, index});
});

console.log(matches);

关于javascript - 正则表达式 - 匹配列表和重复标签的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56277683/

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