请问怎么写a=1&b=2转换成a:1,b:2的正则?

str.replace(reg,"");一个正则应该不能完成吧?

阅读 3.4k
4 个回答
"a=1&b=2".replace(/[=&]/g,function(match) {
    return match == '=' ? ":" : ","
});
'a=1&b=2'.replace(/=|&/g, v => {
  if (v === '=') return ':' 
  else if (v === '&') return ','
})
"a=1&b=2".replace(/(\w+)\s*=\s*(\w+)\s*(\&)?/g, "$1:$2,"); 

==>a:1,b:2,一句话解决,缺点是多了一个,,可以这样处理

var a="a=1&b=2".replace(/(\w+)\s*=\s*(\w+)\s*(\&)?/g, "$1:$2,");
a=a.substring(0,a.length-1)

或者这样最好了:

var a="a=1&b=2";
a.replace(/(\w+)\s*=\s*(\w+)\s*(\&)?/g, "$1:$2,").substring(0,a.length)
var str='a=1&b=2';
str.replace(/([^&=]+)=([^&=])(&)?/g,function(str,$1,$2,$3){return $1+':'+$2+($3?',':'')})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题