正则表达式匹配带引号的字符串或空格

时间:2012-12-05 17:43:02

标签: javascript regex

给定以下字符串,我想生成一个包含每个键/值的数组。

这是我的测试字符串:

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];
}

1 个答案:

答案 0 :(得分:0)

你很亲密。

 /([^ ]+):\s*(['"]?[^ '"]+['"]?)/g

应该这样做。请注意,这不会提供验证,因此key1: value1"key1: 'value1"仍会通过。验证会要求更复杂的模式。