JavaScript split() 使用一个共同的字符,然后 join() 使用不同的字符

标签 javascript regex replace

假设我有一个字符串:/someFolder/anotherFolder/fileName 我想用 "+" 替换所有正斜杠那么这将起作用:

var someString = '/someFolder/anotherFolder/fileName'
someString.split('/').join('+');

或者使用正则表达式,这会起作用:

var someString = '/someFolder/anotherFolder/fileName'
someString.replace(/\//g, "+");

但是,如果我想用“+”替换第一次出现,然后用另一个字符替换第二次出现,比如“-”,第三个用“*”等等,那么最好的方法是什么?上面的字符串 someString 返回:

+someFolder-anotherFolder*fileName

最佳答案

你可以传递一个函数给replace():

let someString = "/someFolder/anotherFolder/file";
const repl = [ '+', '-', '*' ];
let i = 0;
console.log(someString.replace(/\//g, (match) => repl[(i++) % repl.length]));

关于JavaScript split() 使用一个共同的字符,然后 join() 使用不同的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50329947/

相关文章:

javascript - 如何获取克隆图像所在的行和列?

正则表达式匹配任何大于 1 的整数

python - 使用 python 正则表达式提取列表中的元素

R:将一个矩阵中的元素替换为另一个矩阵中 NA 对应位置的元素

python - 固定长度记录

javascript - 单击时的 Jquery 变量

javascript - 使用来自 ajax 下拉菜单的 onclick 事件更新隐藏的输入值

javascript - 应该在排序函数之后的回调中设置状态吗?

regexp.FindSubmatch 与十六进制字符代码

c - C 中的正则表达式自定义替换函数