【发布时间】:2021-08-19 10:34:43
【问题描述】:
以下代码示例显示了replace 方法的意外行为:
let str = "some long string\nwith line\nbreaks"
console.log(str.replace(/\n/g,''))
str = JSON.stringify(str)
console.log(str.replace(/\n/g,''))
我看到documentation 中有一些关于JSON.stringify 用法的警告,并且here 对类似问题的讨论已有七年之久。
JSON.stringify 究竟对替换不起作用的字符串做了什么?
【问题讨论】:
-
JSON.parse(str).replace(/\n/g,'')你的字符串被序列化了,它现在是一个包含字符串的字符串。解析它以取回原来的 -
你为什么在字符串上使用
JSON.stringify?这样做有完全正当的理由,但这也是人们错误地做的事情,所以我认为这可能有助于检查。 -
我的同事刚刚使用它并偶然发现了这种情况,我无法理解出了什么问题,是的,我也尝试使用
JSON.stringify通常在将对象写入文件之前进行序列化。跨度>
标签: javascript json string