在Jade中显示带\ n的字符串

时间:2012-11-23 15:39:56

标签: node.js pug

我需要使用Jade显示包含\n的字符串,我想在<br>中转换这些字符。我尝试以两种方式做到这一点:

- var s = 'text\nand\ntext';
p= string
p= string.replace(/\n/g, '<br />')

但是在第一种情况下我看不到空格,而第二段中的HTML被转义。

3 个答案:

答案 0 :(得分:2)

使用!=代替=

p!= string.replace(/\n/g, '<br />')

有关更多信息,请参阅docs

答案 1 :(得分:0)

我解决了它喜欢这个:

- var text = '<script></script>\nhi';
p!= text.replace(/</g, "&lt;").replace(/>/g, '&gt;').replace(/\n/g, '<br />')

它不会转义html特殊字符,但由于我使用<meta charset="utf-8">它不应该是一个问题。

答案 2 :(得分:0)

这是我的解决方案:

    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并分成2个或更多\n个。如果这导致非空数组,我循环数组并添加一个开始<p>标记。具有单个\n的所有行都会被拆分并使用<br>标记进行循环播放,然后以</p>标记结束。泡沫,冲洗,重复。额外奖励:正确转义字符串。

玉很棒! (正如正则表达式)