当前位置: 首页 > 面试题库 >

如何使用JavaScript对包含换行符的JSON字符串进行转义?

奚无尘
2023-03-14
问题内容

我必须形成一个JSON字符串,其中一个值具有换行符。必须对此进行转义,然后使用AJAX调用发布。任何人都可以提出一种使用JavaScript对字符串进行转义的方法。我没有使用jQuery。


问题答案:

使用您的JSON及其它.stringify()。然后使用.replace()方法和替换所有出现的\n\\n

编辑:

据我所知,还没有知名的JS库可用于转义字符串中的所有特殊字符。但是,您可以链接.replace()方法并替换所有特殊字符,如下所示:

var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.replace(/\\n/g, "\\n")
                                      .replace(/\\'/g, "\\'")
                                      .replace(/\\"/g, '\\"')
                                      .replace(/\\&/g, "\\&")
                                      .replace(/\\r/g, "\\r")
                                      .replace(/\\t/g, "\\t")
                                      .replace(/\\b/g, "\\b")
                                      .replace(/\\f/g, "\\f");
// myEscapedJSONString is now ready to be POST'ed to the server.

但这很讨厌,不是吗?输入功能之美,它们使您可以将代码分解成多个部分,并使脚本的主要流程保持整洁,并且没有8个链接.replace()调用。因此,让我们将该功能放入称为的函数中escapeSpecialChars()。让我们继续前进,并将其连接到prototype chain该的String对象,所以我们可以调用escapeSpecialChars()直接对String对象。

像这样:

String.prototype.escapeSpecialChars = function() {
    return this.replace(/\\n/g, "\\n")
               .replace(/\\'/g, "\\'")
               .replace(/\\"/g, '\\"')
               .replace(/\\&/g, "\\&")
               .replace(/\\r/g, "\\r")
               .replace(/\\t/g, "\\t")
               .replace(/\\b/g, "\\b")
               .replace(/\\f/g, "\\f");
};

一旦定义了该函数,我们的代码主体就是这样简单:

var myJSONString = JSON.stringify(myJSON);
var myEscapedJSONString = myJSONString.escapeSpecialChars();
// myEscapedJSONString is now ready to be POST'ed to the server


 类似资料:
  • 我有一个字符串返回给我,其中包含转义字符。 这是一个示例字符串 " test\40gmail.com " 如您所见,它包含转义字符。我需要将其转换为其实际值,即 " test@gmail.com " 我该怎么做?

  • 问题内容: 我有一个像这样的字符串: 基本上翻译为a ,我想将其替换为: 转换为。 用很多方法进行了尝试,但是它不起作用可能是因为以不同的方式使用了新行。我尝试了: …以及许多其他方式都没有结果。任何想法在这种情况下如何更换? 问题答案: 使用gawk尝试以下行: 如果要 处理新行,则必须先阅读整个文件:

  • 问题内容: 是在Javascript中所有平台的通用换行字符序列?如果不是,我如何确定当前环境的角色? 我不是在问HTML换行符()。我在问JavaScript字符串中使用的换行符序列。 问题答案: 我刚刚使用了一些愚蠢的JavaScript测试了一些浏览器: Windows上使用IE8和Opera 9 。我测试过的所有其他浏览器(Windows上的Safari 4和Firefox 3.5,Lin

  • 问题内容: 我正在寻找一种将包含字符转义序列的字符串转换为表示的字符的方法。 因此,例如,我想将字符串(具有两个字符,一个反斜杠和一个双引号)解析为char 。因此,将一个字符数组转换为一个字符。 因此,可能会执行以下操作,反之亦然: 我不敢相信java.lang或其他任何东西都不能为此提供良好的代码(也许是本地代码),因为我觉得上面的代码可能不完整,并且无法解析每个有问题的(可逃避的?)字符,因

  • 问题内容: 我想对具有nr的字符串进行排序。我怎么做? 可以说我的整数是 在主要我做class2.Sort(); 提前致谢。 问题答案:

  • 问题内容: 在我的网站中,我尝试将字符串转换为包含换行符的JSON。 这将产生“意外令牌”错误。我需要以某种方式逃脱吗? 问题答案: 是的,您应该同时退出这两个字符,因为它们都属于控制字符列表。您可以在此处找到需要转义的字符的完整列表。您的代码将是 JSFiddle:链接