使用用于拆分的相同分隔符连接字符串

Asl*_*lam 5 javascript regex arrays string split

我有一个字符串需要用正则表达式拆分以应用一些修改。

例如:

const str = "Hello+Beautiful#World";
const splited = str.split(/[\+#]/)

// ["Hello", "Beautiful", "World"]
Run Code Online (Sandbox Code Playgroud)

现在字符串已被+或分割#。现在说在对数组中的项目进行一些修改后,我必须使用用于拆分的相同分隔符加入数组,因此字符+#必须与以前的位置相同。

例如:如果我应用了一些修改字符串并加入。那么应该是。

Hello001+Beutiful002#World003
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Wik*_*żew 5

当您将模式放入捕获组中时,split会将匹配的分隔符作为偶数数组项返回。所以,你需要做的就是修改奇怪的项目:

var counter=1;
var str = "Hello+Beautiful#World";
console.log(
  str.split(/([+#])/).map(function(el, index){
    return el + (index % 2 === 0 ? (counter++ + "").padStart(3, '0') : '');
  }).join("")
);
Run Code Online (Sandbox Code Playgroud)