我有一个字符串,我从API看起来像这样:
[{"lat":"39.142971","lng":"-77.215924","hours":"Monday - Wednesday: 11:30am to 11:00pm\r\nThursday: 11:00am to 11:00pm\r\nFriday-Saturday: 11:00am to 12:00am\r\nSunday: 11:30am to 10:00pm","phone":"3019634847","name":"DFH Alehouse, Gaithersburg"}]
当我解析我正在运行它的时间时,当我在网页上显示它时创建新行:
hours = hours.replace(/(?:\\[rn])+/g, "<br/>");
但是当它显示时,它没有插入换行符。对我来说奇怪的是,当我将自己的数据存储在我的数据库中时,我用\ n输入上述代码就可以了。但现在我从api那里拿走它。
答案 0 :(得分:2)
Javascript将\r\n
自动解析为换行符。所以你的正则表达式应该寻找换行符(而不是字符串)。它应该是这样的:
hours = hours.replace(/\r\n|\n|\r/g,'<br/>');
/\r\n|\n|\r/g
这是&#34;最终解决方案&#34;。它首先寻找回车和换行配对,唯一的换行然后回车。 (这是受@torazaburo的启发)
正如@torazaburo所说,您可能不应该编辑文本,而只需将white-space:pre;
添加到您的容器中。这是资源密集程度较低,使用更多&#34; vanilla&#34;方式。
答案 1 :(得分:0)
你的正则表达式试图找到一个反斜杠然后&#39; r&#39;或者&#39; n&#39;。
尝试改为:
/[\n\r]{0,2}/g
找到所有换行符或回车