【问题标题】:How to escape double(single) quotes inside another double(single) quotes with JavaScript [closed]如何使用 JavaScript 在另一个双(单)引号内转义双(单)引号 [关闭]
【发布时间】:2016-07-11 13:03:45
【问题描述】:

我有一个输入字段,用户可以在其中输入所有内容(""'')。有什么办法可以在不知道它们的类型的情况下转义引号吗?我的意思是如果用户输入 ("test"test'test") 我如何将它存储在 js 变量中?任何建议都可以帮助我。

例如,我希望它能够正常工作:

<!DOCTYPE HTML>
<html>
  <body>

    <script>

      var myVar = "test"test'test";
      console.log(myVar.replace('\"', '\\"'));

    </script> 
  </body>
</html>

【问题讨论】:

  • var yourString = yourInput.value; — 我就是这样做的。没什么特别的。 会怎么做呢?
  • 这与输入字段有什么关系呢?您可以像往常一样使用反斜杠转义任何内容:var myVar = "test\"test'test";
  • 引号只需要在字符串literal中转义,而不是在用户输入的内容中。
  • @user5783530 然后请解释一下用户将如何输入数据以及这些数据当前是如何传递的,以及它在哪里传递的。据我了解这个问题,第一条评论应该已经是显而易见的解决方案了。
  • @user5783530 但您实际上并没有在每个引号周围有空格,对吧?另外,请注意 '"''\"' 被解析为完全相同的内容。您可能想要的是 '\\"' ,它本身会转义反斜杠。

标签: javascript escaping


【解决方案1】:

不正确(用 cmets 解释原因):

您不能对已经语法错误的变量声明进行替换。您需要修复损坏的语法。

<!DOCTYPE HTML>
<html>
  <body>
    <script>
        // <-- You CANNOT do this. It's incorrect syntax. You need to escape it appropriately using backslashes.
        var myVar = "test"test'test";

        // This line is not required. You need to correct the syntax error above instead.
        console.log(myVar.replace('\"', '\\"'));
    </script> 
  </body>
</html>

更正:

在这里您可以看到字符串文字中正确转义的值。

<!DOCTYPE HTML>
<html>
  <body>
    <script>
        var myVar = "test\"test\'test";
        console.log(myVar);
    </script> 
  </body>
</html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2015-11-06
    • 2011-04-19
    • 2013-06-17
    相关资源
    最近更新 更多