3 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
RegExp您需要使用-創(chuàng)建正則表達(dá)式
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貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
基本上,您想要的是創(chuàng)建動(dòng)態(tài)正則表達(dá)式,而不是對(duì)其進(jìn)行硬編碼。這是在 的幫助下完成的。RegExp 構(gòu)造函數(shù),它采用正則表達(dá)式和標(biāo)志的字符串表示形式(我弄亂了字符串大寫以演示大小寫的保存):
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貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
JavaScriptreplace已經(jīng)具有執(zhí)行不區(qū)分大小寫搜索的功能,同時(shí)還保留捕獲組的原始大小寫,例如
var input = "DNA deoxyribonucleic acid";
var output = input.replace(/(dna)/ig, "***$1***");
console.log(output);
添加回答
舉報(bào)