问题描述
除了最后一个分号,我想用加号(+)替换所有分号(;)。
ex-
我有这样的东西-
- 苹果;
- 香蕉;
- 苹果;香蕉;
- Apple; Banana; Orange;
- Apple; Banana; Orange; Mango;
我想要这样的结果-
- 苹果;
- 香蕉;
- 苹果+香蕉;
- 苹果+香蕉+橙;
- 苹果+香蕉+橙+芒果;
到目前为止我尝试过
replace(/;/g,' + ')
但这将替换所有分号。
行/单词的大小是动态的,即行与行之间的变化。
解决方法
console.log("A;".replace(/;(?=[^;]*;)/g,' + '));
console.log("A;B;".replace(/;(?=[^;]*;)/g,' + '));
console.log("A;B;C;".replace(/;(?=[^;]*;)/g,' + '));
console.log("A;B;C;D;".replace(/;(?=[^;]*;)/g,' + '));
,
使正则表达式在;
之后需要另一个字符,您可以使用捕获组将其复制到结果中。
s.replace(/;(.)/g,' + $1')
在字符串的末尾将没有后一个字符,因此它将不匹配。