JavaScript正则替换JSON中\n与空格的问题求助
解决JSON字符串中移除
\n和空格的正则问题 嘿,我明白你的问题了——之前的正则只干掉了反斜杠,把n留了下来,确实挺闹心的。咱们来修正一下:
正确的正则表达式
你需要同时匹配转义的换行符(\\n)和所有空白字符,用这个正则就能一次性搞定:
str = str.replace(/\\n|\s/g, "");
为什么这个能行?
\\n:在正则里,反斜杠需要转义,所以\\代表实际的\,加上n就匹配字符串里显式的\n组合;\s:这个元字符能匹配所有空白类字符,包括普通空格、制表符、还有实际的换行符(如果你的字符串里有真正的换行,而不是转义的\n);g:全局标志,确保替换掉所有匹配的内容,而不是只替换第一个。
举个实际例子
假设你的原始字符串是:
let str = '{ \'s-env\': \n { \'b1:trackingip\': \n { "ip": "192.168.1.1" } } }';
替换后会得到干净的结果:
'{\'s-env\':{\'b1:trackingip\':{"ip":"192.168.1.1"}}}'
为什么之前的正则不行?
你之前用的/\\/g只匹配单个的反斜杠,所以它会把\n里的\去掉,剩下孤零零的n,这就是为什么那些n还留在字符串里啦。
内容的提问来源于stack exchange,提问作者J. Davidson
相关产品推荐
相关产品推荐

