首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除javascript字符串中的制表符或换行符

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

Stack Overflow用户
提问于 2018-01-04 10:34:13
回答 3查看 7.3K关注 0票数 1

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

代码语言:javascript
运行
复制
Unexpected token ↵ in JSON at position 9

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

我的JSON:

代码语言:javascript
运行
复制
{"T":". 
^00:00:43^2008-09-11 12:00:00.0"}

但是如果我删除新行(不确定它是新行还是制表符空间,不管我面临的是什么问题,即使它是制表符空间还是新行)。它在正常空间下工作得很好。)下面是修改后的JSON,看起来不错。

修改后的JSON:

代码语言:javascript
运行
复制
 {"T":".^00:00:43^2008-09-11 12:00:00.0"}

我也尝试过关注类似的主题,比如herehere,以及一些类似的主题。但即使在应用了这些之后,也没有什么效果。如果有任何帮助,请在这里感谢。

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

代码语言:javascript
运行
复制
var jsonString = JSON.stringify(data).replace(/(\r\n|\n|\r)/gm,"");

有没有办法检测到这些换行符和制表符空格并将其删除?

EN

回答 3

Stack Overflow用户

发布于 2018-01-04 11:00:54

你不应该打电话给JSON.stringify()。这会将字符串中的换行符转换为文字\n,这将与regexp中的转义序列不匹配。只需直接对坏数据进行替换即可。

代码语言:javascript
运行
复制
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);

票数 4
EN

Stack Overflow用户

发布于 2020-06-09 22:42:53

这对我很有效:

代码语言:javascript
运行
复制
var jsonString = data.replace(/[\n\r\t]/g,"");
票数 1
EN

Stack Overflow用户

发布于 2018-01-04 10:56:23

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

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

我能想到的唯一解决方案是让JSON文件的作者像修改后的JSON一样修改它们的值,或者如果他们想保留换行符,

代码语言:javascript
运行
复制
{"T":".\n^00:00:43^2008-09-11 12:00:00.0"}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48087905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档