gpt4 book ai didi

javascript - JS .replace(海峡, 海峡) : how to get a variable in parameter 1 yet work globally?

转载 作者:行者123 更新时间:2023-11-30 07:15:41 25 4
gpt4 key购买 nike

我有这样一句话:

Visit5Our3Mini4Lab3!

我想在每个数字后添加一个分隔符“_”。我的数字总是 <6 ,所以我只有一位数字。

我找到了一种从 0 到 5 循环的方法,所以在第一轮我替换所有“0”,然后替换所有“1”,等等。不幸的是,这只替换了我的数字的第一次出现(不是全局的)。

for (i=0; i<6; i++) { str = str.replace(i, i+"_"); // this work once only

有没有办法将 .replace() 与变量 i 一起使用但全局?

for (i = 0; i < 6; i++) { str = str.replace(/i/g, i+"_"); // replace all characters "i", NOT what I want.

如何在 .replace() 的第一个参数中获取一个变量,但让它在全局范围内工作。

http://jsfiddle.net/qyWga/3/

http://www.w3schools.com/jsref/jsref_replace.asp


编辑:我也试过:

for (i = 0; i < 6; i++) { 
var trick = "/"+i+"/g";
trick = trick.toString();
str = str.replace(trick, i+"_");
}

这是行不通的。还有其他技巧吗?

最佳答案

使用正则表达式,使用 g(全局)标志:

str = str.replace(/([0-6])/g, "$1_");

这使用括号来捕获匹配,匹配由 0-6 中的任意数字组成(包括 06),g 搜索整个字符串中的每个 匹配项。 $1 表示第一个捕获的匹配项,并将其与后面的 _ 一起放入替换中。

关于javascript - JS .replace(海峡, 海峡) : how to get a variable in parameter 1 yet work globally?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19799264/

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