JS 大佬,咨询请教一个字符串替换的问题

2022-02-18 22:51:50 +08:00
 weject

如果有一个字符串

str = 'abcabcabcabcabc'

如何用 js 字符串的方法,查找"a"并替换,得到如下结果

console.log(res) // 'a1bca2bca3bca4bca5bc'
1,2,3,4,5 为自增变量

看了 replace 等方法,无法替换含有自增变量的内容。

1087 次点击
所在节点    JavaScript
7 条回复
duke807
2022-02-18 22:57:38 +08:00
1. split string by 'a' to array
2. insert 'a1', 'a2' … to array
3. join array back to string
zhw2590582
2022-02-18 22:57:40 +08:00
var str = 'abcabcabcabcabc';
var index = 1;
var result = str.split('').map(item => item === 'a' ? 'a' + index++ : item).join('');
eason1874
2022-02-18 22:59:36 +08:00
replace 支持回调函数,可以像二楼那样在设置一个 index 变量,然后在回调函数里 ++ 并使用
wiluxy
2022-02-18 23:02:24 +08:00
```js
const str = 'abcabcabcabcabc';
let num = 0;

const ret = str.replace(/a/g, function (a) {
num = num + 1;
return num;
});

console.log(ret);

```
muhuan
2022-02-18 23:08:44 +08:00
@wiluxy 厉害👍,有一点需要小改动 [return num;] --> [return 'a' + num;]
weject
2022-02-18 23:10:43 +08:00
哎,我去,replace 居然可以回调,谢谢以上几位大佬了。
wiluxy
2022-02-18 23:15:20 +08:00
@muhuan 嗯嗯,大意了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834932

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX