猿问

替换每个等于“x”的第 n 个字符

我有一个字符串,其中重复了常见字符。

例如

x1234,x2345,x3456,x4567,x5678,x6789

我正在尝试使用 javascript 用字符“d”替换从第一次出现开始的字符“x”的每第 n 次出现。

最终输出应该如下

d1234,x2345,d3456,x4567,d5678,x6789


临摹微笑
浏览 212回答 3
3回答

慕码人2483693

您可以添加一个计数器并通过使用余数进行检查来替换。function replace(string, char, repl, n) {    var i = 0;    return string.replace(new RegExp(char, 'g'), c => i++ % n ? c : repl);}console.log(replace('x1234,x2345,x3456,x4567,x5678,x6789', 'x', 'd', 2));console.log(replace('x1234,x2345,x3456,x4567,x5678,x6789', 'x', 'd', 3));

慕的地8271018

function replaceNth(str, n, newChar) {  const arr = str.split(',');  return arr.map((item, i) => (i % n === 0) ? item.replace('x', newChar) : item).join(",")}const str = 'x1234,x2345,x3456,x4567,x5678,x6789';// replace for every second string valueconsole.log(  replaceNth(str, 2, 'd'));// replace for every third string valueconsole.log(  replaceNth(str, 3, 'e'));

慕雪6442864

var splittedWords = "x1234,x2345,x3456,x4567,x5678,x6789".split(",")var result = splittedWords.map((element, index) => index % 2 ? element : "d" + element.substring(1))console.log(result.join(","))
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答