在保持JSON文件完整的同时替换Javascript中的字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在保持JSON文件完整的同时替换Javascript中的字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1171字,纯文字阅读大概需要2分钟。
内容图文
![在保持JSON文件完整的同时替换Javascript中的字符串](/upload/InfoBanner/zyjiaocheng/669/958b3e662f6e482f9867bd3081e742b5.jpg)
我正在使用Discord机器人,并且有一个名为config.json的JSON文件,如下所示:
{
"token": "stuff"
"prefix": "!"
}
我想替换“ prefix:“!”行.我的代码是这样的:
if(cmd == "prefix"){
var new_prefix = "\"prefix\": " + "\"" + String(args[0]) + "\"";
var data = fs.readFileSync("config.json", "utf-8");
var newValue = data.replace(/"prefix"\s*:\s*".+"/gm, "new_prefix");
fs.writeFileSync("config.json", new_prefix, "utf-8");
};
而不是只替换一行,它会覆盖我的整个config.JSON文件,因此如下所示:
"prefix":"stuffHere"
我如何才能使其仅替换一行,而保留文件的其余部分不变?
解决方法:
不要为此使用正则表达式,这会使事情比需要的复杂得多.使用JSON.parse将JSON字符串转换为对象,分配给该对象的prefix属性,然后编写字符串化的对象:
if(cmd == "prefix"){
var dataJSON = fs.readFileSync("config.json", "utf-8");
var data = JSON.parse(dataJSON);
data.prefix = "new_prefix";
fs.writeFileSync("config.json", JSON.stringify(data), "utf-8");
}
如果出于某种原因必须为此使用正则表达式,则必须替换“ prefix”:“< oldvalue>”不仅具有新值,而且还具有prefix属性.匹配值(以“开头”)时,如果字符串也不包含双引号,则延迟重复任何字符,直到获得另一个“”为止:
.replace(/"prefix": *".*?"/, '"prefix": "new prefix"')
https://regex101.com/r/zyhPqG/1
内容总结
以上是互联网集市为您收集整理的在保持JSON文件完整的同时替换Javascript中的字符串全部内容,希望文章能够帮你解决在保持JSON文件完整的同时替换Javascript中的字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。