繁体   English   中英

删除 javascript 字符串中的制表符空格或换行符

[英]Remove the tab space or line breaks in a javascript string

我有一个 JSON 文件,我正在获取其中可能包含新行的 json 内容。 现在我面临一个问题。 我收到以下错误:

Unexpected token ↵ in JSON at position 9

注意:错误消息特别说明了这个符号:'↵'。 这是什么意思?

我的JSON:

{"T":". 
^00:00:43^2008-09-11 12:00:00.0"}

但是,如果我删除了新行(不确定它是新行还是制表符空间,无论我面临这个问题,即使它是制表符空间或新行。它在正常空间下工作正常。)。 下面是修改后的 JSON,看起来不错。

修改后的 JSON:

 {"T":".^00:00:43^2008-09-11 12:00:00.0"}

我试图遵循类似的线程,比如这里这里以及一些类似的线程。 但即使在应用这些之后也没有任何效果。 请在此感谢任何帮助。

这是我尝试过的解决方案之一:

var jsonString = JSON.stringify(data).replace(/(\r\n|\n|\r)/gm,"");

反正有没有检测这些换行符和制表符空间并删除它们?

您不应该调用JSON.stringify() 这会将字符串中的换行符转换为文字\\n ,这不会与\\n则表达式中的转义序列匹配。 直接对坏数据进行替换即可。

 var data = `{"T":". ^00:00:43^2008-09-11 12:00:00.0"}`; var jsonString = data.replace(/(\\r\\n|\\n|\\r)/g,""); var object = JSON.parse(jsonString); console.log(object);

这对我有用:

var jsonString = data.replace(/[\n\r\t]/g,"");

这不是有效的 JSON 值。 如果您参考https://www.json.org/ ,则需要将换行符、回车符等包含在值本身中。

没有办法修改,因为解析器已经抛出了错误。

我能想到的唯一解决方案是让 JSON 文件的作者修改他们的值,比如你的 Modified JSON,或者如果他们想保留那个换行符,

{"T":".\n^00:00:43^2008-09-11 12:00:00.0"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM