我需要显示一个包含\n
using Jade 的字符串,并且我想将这些字符转换为<br>
. 我试图通过两种方式做到这一点:
- var s = 'text\nand\ntext';
p= string
p= string.replace(/\n/g, '<br />')
但是在第一种情况下,我看不到空格,并且在第二段中,HTML 被转义了。
我解决了它喜欢这个:
- var text = '<script></script>\nhi';
p!= text.replace(/</g, "<").replace(/>/g, '>').replace(/\n/g, '<br />')
它不会转义 html 特殊字符,但因为我正在使用<meta charset="utf-8">
它应该不是问题。
这是我的解决方案:
p
striped = body.replace(/\r/g, '')
paragraph = body.split(/\n{2,}/g)
if paragraph.length
each para in paragraph
| <p>
line = para.split(/\n/g)
first = line.shift()
| #{first}
each li in line
| <br />
| #{li}
| </p>
我扔掉\r
's 并拆分 2 个或更多\n
's。如果这导致一个非空数组,我循环该数组并添加一个开始<p>
标签。任何单行\n
都被分割并用<br>
标签循环,然后以标签结束</p>
。起泡,冲洗,重复。奖励:字符串被正确转义。
玉真棒!(就像正则表达式一样)