我有一个字符串:
"{key1:value1}{key2:value2}"
。
我想使用正则表达式将这些字符串拆分为:
"key1:value1","key2:value2"
。
最后我得到了像val.split(/{(.*?)}/);
令人惊讶的是,这个表达式在IE7中不起作用。 只是好奇知道为什么浏览器兼容正则表达式。而且,我们是否有任何替代正则表达式用于在IE7中修复。
答案 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);
是必要的。