猿问

求助!js 正则互相替换的问题

有一个需求,比如有一段字符串str=“aaa,bbb,ccc,aaa,bbb,……”,我想如下操作:将所有aaa替换成bbb,将所有bbb替换成aaa;
一开始用正则连续替换str.replace(/aaa/g,'bbb').replace(/bbb/g,'aaa');结果后面的会覆盖的前面,结果变成了aaa,aaa,ccc,aaa,aaa,……
相关代码
str="aaa,bbb,ccc,aaa,bbb,……";str1=str.replace(/aaa/g,'bbb').replace(/bbb/g,'aaa');console.log(str1);出来的结果是:aaa,aaa,ccc,aaa,aaa,……
我想让结果变成“bbb,aaa,ccc,bbb,aaa,……”该怎么做?
如果正则做不到,还有其他什么方法吗?顺便说一下,后面的省略号里面,依然可能有aaa和bbb,依然要让它们相互替换。
函数式编程
浏览 570回答 2
2回答

RISEBY

'aaa,bbb'.replace(/(aaa|bbb)/g,(_,m)=>m==='aaa'?'bbb':'aaa');

精慕HU

"aaa,bbb,ccc,aaa,bbb".replace(/aaa/g,'___').replace(/bbb/g,'aaa').replace(/___/g,'bbb')先用个占位符替换,再替换占位符。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答