现象 :
后台json 数组中一个文本字段 带有 \n
“content “:"纤云弄巧,飞星传恨,银汉迢迢暗度。\n金风玉露一相逢,便胜却、人间无数。",
这个字段 现在提供给 两方用, app 抓取后显示, 正常换行;
前端 提取 这个字段的 时候,
谷歌 显示为
content: "纤云弄巧,飞星传恨,银汉迢迢暗度。 金风玉露一相逢,便胜却、人间无数。",
火狐 显示为
content":"\u7ea4\u4e91\u5f04\u5de7\uff0c\u98de\u661f\u4f20\u6068\uff0c\u94f6\u6c49\u8fe2\u8fe2\u6697\u5ea6\u3002\n\u91d1\u98ce\u7389\u9732\u4e00\u76f8\u9022\uff0c\u4fbf\u80dc\u5374\u3001\u4eba\u95f4\u65e0\u6570\u3002"
现前端获取 这个字符串时 做
var reg = /\\+n/g;
data["content"].replace(reg,'<br/>') 处理,
结果:
被显示为 空格符 了
检测出 以下现象:
把 “<br/>” 替换成 “2222” , 同样未被替换成功;
因 这个 \n 字段app 那边也需抓取显示,无法更改为其他的 特殊字符。
需求:一脸懵逼的 lz 跪求解决方案
巴扎黑2017-04-11 12:56:09
你的这个正则是匹配失败的
要分清字符串“\n”和换行符\n
,在原始的字符串中,\n
表示一个字符,一个换行符,而你在用正则匹配的是一个字符串“\n”,自然匹配失败
var content="纤云弄巧,飞星传恨,银汉迢迢暗度。\n金风玉露一相逢,便胜却、人间无数。";
console.log(content.replace(/\n/g,'<br />'));
//纤云弄巧,飞星传恨,银汉迢迢暗度。<br />金风玉露一相逢,便胜却、人间无数。
//不过得到的是普通字符串哦