除了最后一次出现之外,有没有办法在每次出现时使用带replace
的正则表达式?
例如,我希望"abc"
成为"a|b|c"
。
我能做到:
"abc".replace(/./g, "$&|");
但这导致a|b|c|
。有没有办法来替换除了最后一个之外的每一个事件?或者 n 出现,而不是全局g
?或者我是否以错误的方式思考这个问题?
答案 0 :(得分:5)
使用否定前瞻:
"abc".replace(/.(?!$)/g, "$&|"); // => "a|b|c"
甚至:
"abc".split("").join("|"); // => "a|b|c"
答案 1 :(得分:2)
你可以在没有正则表达式的情况下完成:
var s = "abc";
var r = s.split('').join('|');
//=>"a|b|c"