gpt4 book ai didi

JavaScript replaceAll 不区分大小写的搜索使用变量而不是字符串

转载 作者:行者123 更新时间:2023-12-05 03:46:12 27 4
gpt4 key购买 nike

我想在不区分大小写的搜索中使用变量(而不是字符串)执行 JavaScript replaceAll(),同时保留匹配文本的大小写(在返回中)。例如,

console.log('doc.p:', doc.p.toString().substring(0, 26))
var query = this.manager.store.get('q').value.toString();
console.log('query:', query, '| type:', typeof(query))
console.log(doc.p.toString().replaceAll(/(dna)/gi, '***$1***'))
console.log(doc.p.toString().replaceAll(/(query)/gi, '***$1***'))

给予

doc.p: DNA deoxyribonucleic acid     // target text
query: dna | type: string // query text
***DNA*** deoxyribonucleic acid ... // [success] case-insensitive search; case-sensitive return
DNA deoxyribonucleic acid ... // [failure] I've also tried (e.g.) $query, $(query), ... here

我受到 https://stackoverflow.com/a/19161971/1904943 的激励, 也试过 https://stackoverflow.com/a/494046/1904943

工作完成后,我将用 HTML 代码替换“***”(仅用于测试/说明)。

最佳答案

您需要使用 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);

关于JavaScript replaceAll 不区分大小写的搜索使用变量而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65419420/

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