gpt4 book ai didi

javascript - 如果数组项包含字符串但不包含其他字符串,则删除字符串

转载 作者:行者123 更新时间:2023-11-28 16:58:21 25 4
gpt4 key购买 nike

我有一大块文本,已用换行符分割,因此数组中的每个项目都是一行文本。

我正在循环这些行并尝试检测行中包含 </mark> 的位置。但不包括<mark> ,如果满足此条件,则会删除 </mark> (因为它缺少开始标签)。

final_formatted_log_split = logtext.split("\n");

for (i = 0, l = final_formatted_log_split.length; i < l; i++) {
if (final_formatted_log_split[i].includes("<mark>") === false) {
if (final_formatted_log_split[i].includes("</mark>") === true) {
var removed_mark = final_formatted_log_split[i].replace("</mark>", "");
}
}
}

var final_formatted_log = final_formatted_log_split.join("\n");
console.log(final_formatted_log);

并且此控制台日志仍然包含在不包含

的文本中

非常明确的是,预期结果如下:

如果一行是这样的:

line of text here</mark>

然后需要删除 </mark>因为它不包含开口 <mark>

我怀疑这与 === false 有关,但从我在网上读到的内容来看,其他人就是这样使用 .includes 来查看某些内容是否“不包含”的

最佳答案

您可以通过简单的String.prototype.includes来做到这一点:

const arr = [
'<mark>1</mark>',
'2</mark>',
'3</mark></mark>',
'<mark>4</mark>',
]

const replaceMark = (arr) => {
return arr.map(e => {
if (e.includes('</mark>') && !e.includes('<mark>')) e = e.replace(/\<\/mark\>/g, '')
return e
})
}

console.log('original:', arr)
console.log('replaced:', replaceMark(arr))

此解决方案无法处理复杂的情况,例如 <mark>text</mark></mark> ,只有最基本的。

关于javascript - 如果数组项包含字符串但不包含其他字符串,则删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58428087/

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