给定以下字符串,我想生成一个包含每个键/值的数组。
这是我的测试字符串:
key1:value1 key2: value2 key3:"value3" key4: "value4" key5:'value5' key6: 'value6'
预期结果:
params[key1] == 'value1'
params[key2] == 'value2'
params[key3] == 'value3'
params[key4] == 'value4'
params[key5] == 'value5'
params[key6] == 'value6'
这是我到目前为止所做的,但它不适用于冒号后的“或”引号字符串或空格。
var re = /([^ ]*):([^ ]*)/g
while (match = re.exec(subject)) {
params[match[1]] = match[2];
}
答案 0 :(得分:0)
你很亲密。
/([^ ]+):\s*(['"]?[^ '"]+['"]?)/g
应该这样做。请注意,这不会提供验证,因此key1: value1"
或key1: 'value1"
仍会通过。验证会要求更复杂的模式。