我的字符串化对象数据没有在对象值两边加上引号,而在尝试JSON.parse()
时会出错:
'{ "affiliation": CORPORATE, "userId": 75c35d1c-5d12-4485-8fa8-b2f1551a3e6e }'
我需要字符串为:
'{ "affiliation": "CORPORATE", "userId": "75c35d1c-5d12-4485-8fa8-b2f1551a3e6e" }'
我正在使用此正则表达式为对象键添加引号:
var newStr = str.replace(/(['"])?([a-z0-9A-Z_]+)(['"])?:/g, '"$2": ');
例如:
'{ affiliation: CORPORATE }'
至'{ "affiliation": CORPORATE }'
我的数据中只有字符串值,因此我不需要检查值类型。我该如何更改我的正则表达式,以便也将引号添加到对象值?
答案 0 :(得分:2)
您可以使用以下正则表达式:
/[ ](?=\b)|\b(?=,|[ ])/g
它开始匹配一个空格,并使用Word boundary
的前瞻性。然后,它对Word boundary
使用交替符,后跟comma
或Space
。
它使用'global'
标志来匹配所有内容。
然后,将匹配项替换为double quote
。