将字符串拆分为键:javascript中的值对

时间:2012-01-31 18:47:39

标签: javascript regex

我有一个字符串:

"{key1:value1}{key2:value2}"

我想使用正则表达式将这些字符串拆分为:

"key1:value1","key2:value2"

最后我得到了像val.split(/{(.*?)}/);

这样的表达方式

令人惊讶的是,这个表达式在IE7中不起作用。 只是好奇知道为什么浏览器兼容正则表达式。而且,我们是否有任何替代正则表达式用于在IE7中修复。

3 个答案:

答案 0 :(得分:1)

我会这样做:

"{key1:value1}{key2:value2}".replace(/^{|}$/g, '').split('}{')

它会为你提供["key1:value1", "key2:value2"]数组。

答案 1 :(得分:0)

你期待你的钥匙或价值观中的花括号吗?如果没有,为什么不分开'}'?

答案 2 :(得分:0)

不是捕获你想要保留的项目(这将导致split返回的那些值之间的空字符串)为什么不只是拆分所有大括号?

val.split(/[{}]+/);

我不是试图让split工作,而是使用一个简单的全局匹配来写这个

val.match(/([^{}]+)/g);

除非字符串中有空格,否则很好

val.match(/([^\s{}](?:[^{}]*[^\s{}])?)/g);

是必要的。