gpt4 book ai didi

javascript - Javascript 中的正则表达式无需重复

转载 作者:行者123 更新时间:2023-11-28 15:19:31 25 4
gpt4 key购买 nike

我正在尝试使用 Javascript 替换字符串中所有出现的 {0}、{1}、{2} 等。

示例字符串:

var str = "Hello, my name is {0} and I'm {1} years.";

我尝试了以下方法来构造正则表达式:

var regex1 = new RegExp("{" + i + "}", "g")
var regex2 = new RegExp("\{" + i + "\}", "g")

两次尝试都会引发错误:

Invalid regular expression: /{0}/: Nothing to repeat

我像这样使用替换:

str.replace(regex, "Inserted string");

找到了各种具有不同解决方案的 StackOverflow 帖子,但并不能完全解决我的问题。

最佳答案

字符串文字 "\{" 生成字符串 "{"。如果其中需要反斜杠,则需要将其转义:

"\\{"

这将产生正则表达式 \{..\},这是正确的正则表达式语法。

话虽如此,你的做法实在是太奇怪了。使用正则表达式,您应该执行如下操作:

var substitues = ['foo', 'bar'];
str = str.replace(/\{(\d+)\}/, function (match, num) {
return substitutes[num];
});

换句话说,不要为每个值动态构建正则表达式;执行一个匹配所有值的正则表达式,并让您根据需要替换它们。

关于javascript - Javascript 中的正则表达式无需重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32115173/

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