【问题标题】:Prevent adding backslash to \n special character in a string防止向字符串中的 \n 特殊字符添加反斜杠
【发布时间】:2021-08-16 07:09:46
【问题描述】:

我们以此为例:“-----BEGIN CERTIFICATE-----\nMIID/TCCAuUCEQCxLmq67”

我想将该字符串保留为该字符串,因为我需要这个确切的字符串。

但是在 javascript 端发生的事情是它被显示为: "-----开始证书-----\\nMIID/TCCAuUCEQCxLmq67"

我相信这是预期的行为,因为 \\n 实际上是 \n,因为额外的反斜杠允许 javascript 正确解释该字符串。

问题是我正在使用 JSON.stringify 将对象作为字符串传递到我的 API 以存储此信息而无需额外的反斜杠。

试图替换反斜杠,但它似乎又回来了。不太清楚还有什么其他方法可以尝试..任何帮助表示赞赏,谢谢!

【问题讨论】:

  • 我理解您调用JSON.stringify 并添加额外的斜杠作为转义字符,但您想要将字符保持为换行符\n
  • JSON.parse 只能在 \\n 存在而不是 \n 在客户端时解析。您用来解析 json 的服务器端语言/库是什么?
  • 您没有在服务器上调用 JSON.parse 的任何原因?
  • @RyanWilson 是正确的我想保留 \n 并将字符串存储在一个对象中。
  • @Ramesh 使用 serverless + golang 作为后端。

标签: javascript reactjs regex string replace


【解决方案1】:

简单的解决方案是将 \n 替换为随机唯一的字符串/字符,如果您想使用 /n 保留字符串,请在服务器端再次替换它

let result = "-----BEGIN CERTIFICATE-----\nMIID/TCCAuUCEQCxLmq67".replaceAll("\n", "SomethingUnique");

//result

-----BEGIN CERTIFICATE-----SomethingUniqueMIID/TCCAuUCEQCxLmq67

【讨论】:

  • 这可能是我可能需要尝试的最后解决方案!谢谢
【解决方案2】:

你只需要用转义的版本替换字符串:

var x = "-----BEGIN CERTIFICATE-----\nMIID/TCCAuUCEQCxLmq67".replace("\n", "\\n")

console.log(x)

【讨论】:

  • 如果它是字符串对象,我认为这不起作用
猜你喜欢
  • 2013-05-29
  • 2021-09-02
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 2020-03-15
相关资源
最近更新 更多