我有以下字符串几乎看起来像有效的json:
"Url: localhost/2.0/facebook,User Name: ted,User Value: 4"
我怎样才能把它变成有效的json,这样如果我做str.Url
我得到" localhost / 2.0 / facebook"例如?
答案 0 :(得分:2)
你可以通过以下方式完成
let str = "Url: localhost/2.0/facebook,User Name: ted,User Value: 4";
let result = {}
str.replace(/([^:]+):\s*([^,]+),?/g, function(a, b, c){
result[b] = c;
})
console.log(result);
答案 1 :(得分:0)
如果您确定自己的模式,并且任何键或值都不会包含,
和:
,那么您可以尝试先按,
拆分以获取每个键值配对,然后按:
分割每对,以获得每对的关键字和值。
var str = "Url: localhost/2.0/facebook,User Name: ted,User Value: 4";
var obj = str.split(",").reduce((i,e)=>{
var kv = e.split(":"),
v = kv[1].trim();
i[kv[0]] = isNaN(v) ? v : parseFloat(v) ;
return i;
}, {})
console.log(obj)

答案 2 :(得分:0)
您可以在正则表达式的帮助下使用字符串替换,将键和值放在引号(")中,然后使用JSON.parse
将字符串转换为JSON对象。
let url = "Url: localhost/2.0/facebook,User Name: ted,User Value: 4";
url = url.replace(/(.*?):\s?(.*?),/g, '"$1": "$2",\n').replace(/(.*):\s?(.*)$/, '"$1": "$2"');
console.log(JSON.parse(`{ ${url} }`));

```