繁体   English   中英

用字符串内的双引号替换单引号

[英]Replace single quotes with double quotes inside string

我的代码用双引号替换了所有对象键,但单引号的值没有被替换

var str = "db.projects.insert({'projectid':'1001','projteamname':'DBTeam','amount':100})"
var objKeysRegex = /({|,)(?:\s*)(?:')?([A-Za-z_$\.][A-Za-z0-9_ \-\.$]*)(?:')?(?:\s*):/g;// look for object names
str = str.replace(objKeysRegex, "$1\"$2\":");// all object names should be double quoted
console.log(str)

我无法获得以下结果

Expected ouput
db.projects.insert({"projectid":"1001","projteamname":"DBTeam","amount":100})

我相信您在这里使事情变得过于复杂,如果您只想替换所有这些引号,就足够了:

 var str = "db.projects.insert({'projectid':'1001','projteamname':'DBTeam','amount':100})"; alert(str.replace(/'/g, '"')); 

您可以尝试使用以下模式:

([{:,])'(\w+)'/g; 

并替换为:

$1\"$2\"

 var str = "db.projects.insert({'projectid':'1001','projteamname':'DBTeam','amount':100})" var objKeysRegex = /([{:,])'(\\w+)'/g; str = str.replace(objKeysRegex, '$1\\"$2\\"'); alert(str) 

结果:

db.projects.insert({ “专案编号”: “1001”, “projteamname”: “DBTeam”, “量”:100})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM