作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想循环一个字符串作为键/值对。数据以字符串的形式提供给我(我正在使用 jstorage 插件)。
我尝试将字符串拆分为数组,但它没有返回正确的键/值。
例子
"color":"#000000", "font":"12px", "background":"#ffffff",
最佳答案
如果您总是得到这样的字符串,即双引号中的键和值,您可以将 {...}
添加到字符串和 parse it as JSON :
// remove trailing comma, it's not valid JSON
var obj = JSON.parse('{' + str.replace(/,\s*$/, '') + '}');
如果不是,拆分字符串也很容易,假设 、
和 :
不能出现在键或值中:
var obj = {},
parts = str.replace(/^\s+|,\s*$/g, '').split(',');
for(var i = 0, len = parts.length; i < len; i++) {
var match = parts[i].match(/^\s*"?([^":]*)"?\s*:\s*"?([^"]*)\s*$/);
obj[match[1]] = match[2];
}
关于javascript - 如何将字符串循环为键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490958/
我是一名优秀的程序员,十分优秀!