用javascript中的双引号替换引号
问题描述:
我搜索正则表达式或其他方式来用双引号替换引号。但我想继续保持报价。举例保留在jusqu'à
的报价。 我试图找到一个正则表达式,但我没有找到。用javascript中的双引号替换引号
输入:
{'nom': 'mulot', 'code': 'apodemus agrarius', 'descriptif': 'mammifère', 4'reconnaissance': "Petit mammifère rongeur sauteur jusqu'à 80 cm et nageur.", 'conditions': ' ', 'sources': ' '}
OUTPUT:
{"nom": "mulot", "code": "apodemus agrarius", "descriptif": "mammifère", "reconnaissance": "Petit mammifère rongeur sauteur jusqu'à 80 cm et nageur.", "conditions": ' ', "sources": " "}
非常感谢。
答
基本上,你需要在逗号上分开,循环,在分号上分开,循环,替换引号,将它们连接在一起,然后再将第一个分割回来。
var str = "{'nom': 'mulot', 'code': 'apodemus agrarius', 'descriptif': 'mammifère', 'reconnaissance': \"Petit mammifère rongeur sauteur jusqu'à 80 cm et nageur.\", 'conditions': ' ', 'sources': ' '}";
var rep = "{" + str.substr(1, str.length - 2).split(/\s?,\s?/).map(function(v) {
return v.split(/\s?:\s?/).map(function(p) {
return p.replace(/^\s?'([^']+)'\s?$/, '"$1"');
}).join(":");
}).join(",") + "}";
console.log(rep);
有问题这个”
- 它不检查
"
字符串的内部。会造成问题。 - 如果字符串包含
,
这将打破 - 如果字符串包含
:
它将brea ķ - 不处理的阵列/对象内部
另一种解决方案(其是不是100%安全的)是EVAL()或新的功能()
var str = "{'nom': 'mulot', 'code': 'apodemus agrarius', 'descriptif': 'mammifère','reconnaissance': \"Petit mammifère rongeur sauteur jusqu'à 80 cm et nageur.\", 'conditions': ' ', 'sources': ' '}";
var arr = new Function("return " + str)();
console.log(arr);
console.log(JSON.stringify(arr));
现在最好的解决方案,首先解决输出/输入问题。
做一个JSON.parse(JSON.stringify({'nom':'mulot','code':'apodemus agrarius','descriptif':'mammifre','侦察':“Petit mammif're rongeur sauteur jusqu's 80 cm et nageur。“,'conditions':'','sources':''})) –
输入是字符串还是对象? – gurvinder372
是输入字符串,我想成为一个输出字典对象。 – JonathanPetit