代码之家  ›  专栏  ›  技术社区  ›  BMW

如何保留反斜杠

  •  -1
  • BMW  · 技术社区  · 6 年前

    $ cat a.json
    {
      "name": "url",
      "value": "https:\/\/www.example.com"
    }
    

    但当出口其价值时,反斜杠就消失了。

    $ cat a.js
    var fs = require("fs");
    var content = fs.readFileSync("a.json");
    var json = JSON.parse(content);
    console.log(json)
    
    fs.writeFile("output", json.value, function(err) {
        if(err) {
            return console.log(err);
        }
        console.log("The file was saved!");
    });
    

    这是测试结果

    $ node a.js
    { name: 'url', value: 'https://www.example.com' }
    The file was saved!
    
    $ cat output
    https://www.example.com
    

    https:\/\/www.example.com
    

    2 回复  |  直到 6 年前
        1
  •  0
  •   pmar    6 年前

    反斜杠用作 escape character. "\/" => "/"

    您需要的是双反斜杠“\”,第一个反斜杠将被视为转义,第二个反斜杠表示要将反斜杠保留在最后一个字符串中。

    https:\\/\\/www.example.com

        2
  •  0
  •   Quentin    6 年前

    \ 首先把字符作为数据。那是个越狱角色。

    / 可以 前面有转义符,但不需要。

    所以在JSON中 "\/" "/"

    在URL中,它们不是等价的。


    如果你想包括 \ 你不应该这么做的 ,因为这将使其成为无效的URL),则需要转义 在原始JSON中:

    {
      "name": "url",
      "value": "https:\\/\\/www.example.com"
    }
    

    你可以继续逃离 / 同样,但如上所述,这是毫无意义的:

    {
      "name": "url",
      "value": "https:\\\/\\\/www.example.com"
    }