【问题标题】:Escaped backslash doubled in object转义的反斜杠在对象中加倍
【发布时间】:2018-02-19 15:22:45
【问题描述】:

我有一个带有反斜杠的字符串:const string = '/\\.txt/,它返回预期的结果(/\.txt/)但是如果我把这个字符串放到一个对象中,转义反斜杠本身就是重复的,所以我的对象返回这个:@ 987654323@,即使我用{ string }{string: string} 声明它。 那么,以前有人遇到过这个问题吗? 如果是,我该如何解决这个问题?

【问题讨论】:

  • 您确定您只是没有看到反斜杠需要在 JSON 中转义的事实吗?您正在查看的 JSON 输出,对吗?
  • 你能添加一些代码吗?几乎不可能理解你在说什么。
  • 所以,这是我的函数:() => { const string = '/\\.' + 'alma'; return {string} 这就是返回 { string: '/\\.alma' } 对象的内容。
  • 对,所以在我看来,它就像一个带有 string 属性的对象,其中包含一个反斜杠。您看到它已转义,因为您正在查看 JSON 表示。

标签: javascript string object escaping


【解决方案1】:

我是这样复制的:

var foo = {
    bar: () => { const string = '/\\.' + 'alma'; return {string}}
};

现在

JSON.stringify(foo.bar())

将产生

"{"string":"/\.alma"}"

但如果我用

否定stringify
JSON.parse(JSON.stringify(foo.bar()))

那么结果就是

{string: "/.alma"}

确实,您只是看到需要在 JSON 中转义反斜杠。

【讨论】:

    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2015-09-21
    • 2011-11-09
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多