function compress(source) { const keys = {}; ⇽--- 存儲目標key source.replace( /([^=&]+)=([^&]*)/g, function(full, key, value) { ⇽--- 提取鍵值對信息 keys[key] =(keys[key] ? keys[key] + "," : "") + value; return ""; } ); const result = []; for (let key in keys) { result.push(key + "=" + keys[key]); } ⇽--- 收集key信息 return result.join("&"); ⇽--- 使用&符號連接結果 } assert(compress("foo=1&foo=2&blah=a&blah=b&foo=3") === "foo=1,2,3&blah=a,b","Compression is OK!");
使用正則表達式加replace 方法處理字符串正則表達式