gpt4 book ai didi

Javascript - 替换中的正则表达式返回匹配的字符串

转载 作者:行者123 更新时间:2023-12-03 10:07:56 25 4
gpt4 key购买 nike

我有一个函数,用于将文本中给定的关键字替换为完全相同的关键字,但以粗体显示。

function parseKeywords(text){
var replacedText = text,

var keywords = getStoredData("currentCrisisKeywords").split(',');

$(keywords).each(function(i, kw){
var kWord = kw.replace(/^\s+|\s+$/g, "");
replacedText = replacedText.replace(new RegExp(kWord, 'i'), '<b>'+kWord+'</b>');
});
return replacedText;
}

问题是 kWord 可能是“这是一个测试”,而替换的字符串是“这是一个测试”。我需要保持原来的格式,而现在用关键字替换它,我无法保持原来的格式。

我尝试了这种方法,但没有成功:

replacedText = replacedText.replace(new RegExp(kWord, 'i'), "<b>$1</b>");

即使 regExp 搜索不区分大小写,您是否知道通过保持原始格式返回匹配字符串的方法?

谢谢

最佳答案

在模式中的关键字两边加上括号,以便捕获它,然后您可以在替换字符串中使用 $1 来使用匹配的字符串而不是关键字:

var kWord = "(" + kw.replace(/^\s+|\s+$/g, "") + ")";
replacedText = replacedText.replace(new RegExp(kWord, 'i'), '<b>$1</b>');

关于Javascript - 替换中的正则表达式返回匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30279747/

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