【发布时间】:2012-11-11 23:55:59
【问题描述】:
我需要使用 Jade 显示一个包含 \n 的字符串,并且我想将这些字符转换为 <br>。我尝试通过两种方式做到这一点:
- var s = 'text\nand\ntext';
p= string
p= string.replace(/\n/g, '<br />')
但在第一种情况下,我看不到空格,并且在第二段中,HTML 被转义了。
【问题讨论】:
我需要使用 Jade 显示一个包含 \n 的字符串,并且我想将这些字符转换为 <br>。我尝试通过两种方式做到这一点:
- var s = 'text\nand\ntext';
p= string
p= string.replace(/\n/g, '<br />')
但在第一种情况下,我看不到空格,并且在第二段中,HTML 被转义了。
【问题讨论】:
【讨论】:
string包含例如<script>标签,它将被渲染
html var 应呈现为 &lt;script&gt;&lt;/script&gt;
我喜欢这样解决它:
- 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> 标签结束。起泡,冲洗,重复。奖励:字符串被正确转义。
玉真棒! (和正则表达式一样)
【讨论】: