下面是我正則表達式來解析逗號分隔的鍵 - 值對:正則表達式不允許的字符除非轉義
function extractParams(str) {
var result = {};
str.replace(/\s*([^=,]+)\s*=\s*([^,]*)\s*/g, function(_, a, b) { result[a.trim()] = b.trim(); });
return result;
}
出於示例的結果:
extractParams("arg1 = value1 ,arg2 = value2 ,arg3=uuu")
是 {"arg1":"value1","arg2":"value2","arg3":"uuu"}
。
我想擴展此功能,以允許值包括轉義逗號,等號和轉義字符本身。這樣的結果是:
extractParams("arg1 = val\,ue1 ,arg2 = valu\=e2, arg3= val\\ue3")
將
{"arg1":"val,ue1","arg2":"valu=e2","arg3":"val\ue3"}
。
我該怎麼做?謝謝,Moshe。