JavaScript split()使用公共字符然后使用不同的字符join()

And*_*L64 3 javascript regex replace

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

var someString = '/someFolder/anotherFolder/fileName'
someString.split('/').join('+');
Run Code Online (Sandbox Code Playgroud)

或者使用正则表达式,这将工作:

var someString = '/someFolder/anotherFolder/fileName'
someString.replace(/\//g, "+");
Run Code Online (Sandbox Code Playgroud)

但是如果我想用'+'代替第一次出现,然后用另一个字符替换第二次出现,比如说' - ',第三次出现'*'等等,以便someString上面的字符串返回,那将是最好的方法:

+someFolder-anotherFolder*fileName
Run Code Online (Sandbox Code Playgroud)

Mát*_*nka 6

您可以将函数传递给replace():

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