You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular+TypeScript中如何移除字符串的空格、转义\n及换行符?

问题描述

在Angular+TypeScript项目中,从OpenAI获取到一段数据,console.log显示内容如下:

" {\n  joy: [\"yellow\", \"orange\", \"pink\"],\n  surprise: [\"blue\", \"purple\"],\n  fear: [\"black\", \"gray\"]\n};"

需要移除其中的换行符、反斜杠和空格,于是使用JavaScript的replace方法:

replace(/[\n\\ ]/g, '');

该代码在JS控制台、regex101等测试环境中能得到预期结果,但在项目中输出为:

"{njoy:[\"yellow\",\"orange\",\"pink\"],nsurprise:[\"blue\",\"purple\"],nfear:[\"black\",\"gray\"]n};"

空格和反斜杠已被移除,但字符n残留,期望得到的输出是:

"{joy:[\"yellow\",\"orange\",\"pink\"],surprise:[\"blue\",\"purple\"],fear:[\"black\",\"gray\"]};"

测试代码片段:

const input = " {\n  joy: [\"yellow\", \"orange\", \"pink\"],\n  surprise: [\"blue\", \"purple\"],\n  fear: [\"black\", \"gray\"]\n};"
const output = input.replace(/[\n\\ ]/g, '');
console.log("Filtered string is", output);
解决方案

问题出在项目实际获取的字符串中,\n并非换行符,而是以\和n两个独立字符的形式存在。原正则仅匹配了反斜杠\,留下了n,导致输出异常。

调整正则表达式,同时匹配\n字符组合、空格和单独的反斜杠,替换代码如下:

const output = input.replace(/\\n|\s|\\/g, '');

或者更简洁的写法:

const output = input.replace(/\\n?|\s/g, '');

这个正则会匹配:

  • \\n:字符串中的\n组合字符
  • \\:单独的反斜杠(n?表示n可选)
  • \s:所有空白字符(包括空格、换行符等)

替换后即可得到预期的目标字符串。

内容的提问来源于stack exchange,提问作者fadingbeat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 13:10:04