使用JavaScript删除这些换行符

问题描述

| 为了我的一生,我不知道如何删除这种奇怪的格式。这是ѭ0后发送给我的东西:http://jsbin.com/ohoto5/2/edit 点击预览,您将看到格式。我需要将其作为一行,以便它可以进入JSONP响应(即
jsonp12345(...)
)。如果是多行,将触发语法错误。我已经尝试过我能想到的每一个regex组合,但是没有什么可以消除这些限制。甚至没有
/[\\r\\n\\s\\t]/gi
。似乎唯一将其删除的是:
/[\\w\\n]/gi
,但是问题是我丢失了所有单词! 有什么帮助吗?请没有jQuery修复程序...我需要纯JavaScript。 这是Chrome(图片)中的对象:     

解决方法

在我看来这应该这样做:
s.replace(/[\\r\\n]/g,\'\')
jsFiddle演示 似乎每个不必要的换行符都被删除。     ,很难说出所需的内容,但是浏览器将哪些内容识别为空格之间存在许多差异,请考虑准确设置要匹配的字符,例如
// List of characters matched as white space 
var whiteSpace = \'\\u0009\\u000a\\u000b\\u000c\\u000d\\u0020\\u00a0\' + 
                 \'\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\' + 
                 \'\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u200b\' + 
                 \'\\u2028\\u2029\\u202f\\u205f\\u3000\'; 
var re = new RegExp(\'[\' + whiteSpace + \']+\',\'g\');

var x = \'lots and  lots     of    space     \';

alert(x.replace(re,\' \').replace(/ +/,\' \'));
    ,放弃JS regex之后,我尝试了PHP,并首先尝试了它:
preg_replace(\'/\\s\\s+/\',\' \',$referrer[\'cache\'])
在我上面的原始JSBin链接中,缓存是JSON。现在返回:
callback([{\"LatLng\":{\"Ba\":45.531124,\"Ca\":-122.68374699999998},\"InfoWindow\":\" <address>1125 NW 12th Ave,Portland,OR</address> <p>My first apartment</p> \",\"originalAddress\":\"1125 NW 12th Ave,OR\"},{\"LatLng\":{\"Ba\":45.5138621,\"Ca\":-122.67767300000003},\"InfoWindow\":\" <address>1330 SW 3rd Ave,OR</address> <p>My 2nd apartment</p> \",\"originalAddress\":\"1330 SW 3rd Ave,{\"LatLng\":{\"Ba\":45.748955,\"Ca\":-122.47959000000003},\"InfoWindow\":\" <address>17501 NE 188th Ct,Brush Prairie,WA</address> <p>The first place I lived by my own</p> \",\"originalAddress\":\"17501 NE 188th Ct,WA\"},{\"LatLng\":{\"Ba\":45.756944,\"Ca\":-122.43575800000002},\"InfoWindow\":\" <address>18607 NE Erickson Rd,WA</address> <p>Last place I lived with my parents</p> \",\"originalAddress\":\"18607 NE Erickson Rd,WA\"}])
有趣的是,JS中完全相同的正则表达式不会产生相同的结果-_-     ,CRLF编码为\\ r \\ n,因此
str = str.replace(/(\\r\\n)/g,\'\');
应该做的工作。