【发布时间】:2017-03-20 20:28:47
【问题描述】:
下面是我解析逗号分隔键值对的正则表达式:
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"}.
我该怎么做?谢谢,摩西。
【问题讨论】:
标签: javascript regex parsing arguments tokenize