为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

临摹微笑 2021-10-21 14:17:08
我有一个字符串,其中重复了常见字符。例如x1234,x2345,x3456,x4567,x5678,x6789我正在尝试使用 javascript 用字符“d”替换从第一次出现开始的字符“x”的每第 n 次出现。最终输出应该如下d1234,x2345,d3456,x4567,d5678,x6789
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

您可以添加一个计数器并通过使用余数进行检查来替换。


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));


查看完整回答
反对 回复 2021-10-21
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

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 value

console.log(

  replaceNth(str, 2, 'd')

);

// replace for every third string value

console.log(

  replaceNth(str, 3, 'e')

);


查看完整回答
反对 回复 2021-10-21
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

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(","))


查看完整回答
反对 回复 2021-10-21
  • 3 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信