Node.js Jade-将新行转换为<;br/>;并对内容进行编码
我还不太熟悉Jade模板引擎。是否有办法将新行(如\n转换为br标记,同时对其他内容进行编码 比如说Node.js Jade-将新行转换为<;br/>;并对内容进行编码,node.js,pug,Node.js,Pug,我还不太熟悉Jade模板引擎。是否有办法将新行(如\n转换为br标记,同时对其他内容进行编码 比如说 .replace(/\n/g,'</br>') 。替换(/\n/g,) 应用于编码的值应该完成这项工作。但是,我不确定如何对值进行编码并得到结果。有没有帮手 您可以使用jades escape方法并替换该方法返回值中的换行符,如下所示: p !{escape(foo).replace(/\n/g, '<br/>')} p!{escape(foo).replace(/
.replace(/\n/g,'</br>')
。替换(/\n/g,)
应用于编码的值应该完成这项工作。但是,我不确定如何对值进行编码并得到结果。有没有帮手 您可以使用jades escape方法并替换该方法返回值中的换行符,如下所示:
p !{escape(foo).replace(/\n/g, '<br/>')}
p!{escape(foo).replace(/\n/g,“
”)}
我不知道您的用例有任何内置功能
看起来帕格去掉了转义函数,所以现在您必须使用:
p !{foo.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\n/g, '<br/>')}
p!{foo.replace(//&g,,&;')。replace(//g,,)。replace(//\n/g,,
')}
您可以做到这一点:
p !{someString.replace(/\n/g, '<br/>')}
p!{someString.replace(/\n/g,
')}
请注意,此方法将正确转义字符串。转义方法甚至将简单空格(“”)字符转换为“%20” 它是用来编码url中的字符串,而不是html内容。 另一个解决方案
each line in foo.split(/\n/)
= line
br
如果您不需要
,只需将文本放入标记中即可。所有空白(包括新行)将显示为已键入
或者您可以设置css规则
空白:pre
以保留空白预格式化。检查这个。大多数答案都说你需要做p!{foo.replace(/\n/g)}
。但是,这还不够:正则表达式中的\n
与新行字符匹配,因此需要转义\
中的\n
。您可以通过向\n
添加额外的\
来完成此操作。
最终结果:
p!{foo.replace(/\\n/g,
)}
注意:如果还想转义其他字符,只需添加:.replace(//&g',&;')。replace(//g',)
编辑:您可以使用
p{foo.replace…}
正确转义html标记中的所有字符。如果您想防止用户在输入字段中插入…
标记以入侵您的网站,这将非常有用。这就是我要说的!谢谢,伙计,那不是杰德的方法。由于模板编译成JS函数,所以可以使用其中的任何节点和V8全局变量。虽然确实可以使用全局方法,但这不是全局转义方法。全局转义方法将为每个@返回%3C
。抱歉,dave不知道这一点。谢谢。正在尝试格式化我的模板中的pug错误消息,.message!{message.replace(/\n/g,“
”)}
已经足够了。将其与换行符结合使用:断开单词代码>wordwrap:break word
如果没有可接受的点,则在任意点将单词拆分。如果您只需要简单的文本格式,将单词换行到下一行,请尝试空白:pre wrap
它不是转义someString变量,现在它可以呈现丰富的html内容,例如xss:(
p !{foo.replace(/\\n/g, '<br />')}