3 回答
TA贡献1847条经验 获得超7个赞
RegExp您需要使用-创建正则表达式
var reg = new RegExp(`(${query})`, "gi")
var doc = "DNA deoxyribonucleic acid";
var query = "dna"
var exp = `(${query})`
var reg = new RegExp(exp, "gi")
var result = doc.replaceAll(reg, "***$1***");
console.log(result);
TA贡献1803条经验 获得超3个赞
基本上,您想要的是创建动态正则表达式,而不是对其进行硬编码。这是在 的帮助下完成的。RegExp 构造函数,它采用正则表达式和标志的字符串表示形式(我弄乱了字符串大写以演示大小写的保存):
string1 = 'DnA deoxyribonucleic acid'
string2 = 'DNA deoxyribonucleic aCId'
const replacer = (str, replace) => {
const re = new RegExp(`(${replace})`, 'gi')
return str.replaceAll(re, '***$1***')
}
console.log(replacer(string1, 'dna'))
console.log(replacer(string2, 'acid'))
TA贡献1827条经验 获得超9个赞
JavaScriptreplace已经具有执行不区分大小写搜索的功能,同时还保留捕获组的原始大小写,例如
var input = "DNA deoxyribonucleic acid";
var output = input.replace(/(dna)/ig, "***$1***");
console.log(output);
添加回答
举报