gpt4 book ai didi

JavaScript 正则表达式 : Replace curly braces

转载 作者:行者123 更新时间:2023-12-03 08:22:34 25 4
gpt4 key购买 nike

各位,

我正在尝试用多次出现的 "${country_id}" 替换一大块字符串。 。我需要一个可以替换 ${country_id} 的正则表达式。这是我的代码:

    var iterLiteral  = "\$\{"+literal+"\}"
var re = new RegExp(iterLiteral,"g")
var value = value;
return body.replace(re,value)

我收到此错误:

Evaluator: org.mozilla.javascript.EcmaError: Invalid quantifier }

如何修复它?

编辑:

要替换的字符串:${country_id} literal被传递给函数:country_id .

尝试使用 Anubhava 所说的(使用 \\ ),程序尝试搜索 \$\{country_id\}但它没有找到。

编辑 2:为什么这是重复的?提到的问题并没有谈到转义。

最佳答案

如果您有一组正则表达式,您可能会发现使用 // 语法来定义正则表达式会更容易:

'foo: ${country_id}, bar: ${country_id}'.replace(/\$\{country_id\}/g, 'baz')

或者,如果必须构造字符串,则需要对斜杠进行双重转义,使其成为正则表达式的一部分,并且在创建字符串本身时不将其视为转义字符:

'foo: ${country_id}, bar: ${country_id}'.replace(new RegExp('\\$\\{' + 'country_id' + '\\}', 'g'), 'baz')

您的函数将是:

function replaceLiteral(body, literal, value) {
var iterLiteral = "\\$\\{" + literal + "\\}";
var re = new RegExp(iterLiteral, "g");
return body.replace(re, value)
}

var result = replaceLiteral('foo: ${country_id}, bar: ${country_id}', 'country_id', 'baz');
console.log(result);

所有这些都输出相同的字符串:

'foo: baz, bar: baz'

关于JavaScript 正则表达式 : Replace curly braces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682016/

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