gpt4 book ai didi

javascript - 在javascript中,如何在不覆盖以前的粗体字符串的情况下用粗体文本替换多个字符串?

转载 作者:行者123 更新时间:2023-11-30 14:57:07 24 4
gpt4 key购买 nike

function replaceKeys(inputString, keys){

for (var i = 0; i < keys.length; i++) {
var t = keys[i];
if (t) inputString= inputString.replace(new RegExp(t, 'gi'), '<strong>' + t + '</strong>');
}
return s;
}

使用上面的 javascript 方法,我尝试根据“键”或字符串部分的列表将给定字符串中的所有文本加粗。

示例输入:
键= [“人”,“海峡”]inputString="大力士"
预期输出:
strong ma​​n

不幸的是,输出也替换了强标签的“str”部分。意味着输出变为

<strong>strong 男人
是否有正则表达式或其他一些方法,以便我可以忽略字符串中的 html 标记,这样它就不会出现这种奇怪的行为?

最佳答案

您可以通过定义一个占位符而不是使用 <strong> 来做到这一点直接标记:

function replaceKeys(inputString, keys){
var placeholder = '!!';
var s = inputString.replace(new RegExp(/strong>/gi),placeholder);
for (var i = 0; i < keys.length; i++) {
var t = keys[i];
if (t) s = s.replace(new RegExp(t, 'gi'), '<' + placeholder + t + '</' + placeholder );
}
return s.replace(new RegExp(placeholder,'g'),'strong>');
}
replaceKeys("strong man",["man", "str"]);

关于javascript - 在javascript中,如何在不覆盖以前的粗体字符串的情况下用粗体文本替换多个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47086151/

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