Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';替换(/\n/g,';<;br>;';)是否使用下划线.js?_Javascript_Underscore.js - Fatal编程技术网

Javascript 为什么';替换(/\n/g,';<;br>;';)是否使用下划线.js?

Javascript 为什么';替换(/\n/g,';<;br>;';)是否使用下划线.js?,javascript,underscore.js,Javascript,Underscore.js,我有一个字符串,str,其中包含多行内容,我想使用上面提到的replace在HTML页面上用underline.js正确显示它,如下所示: <%= str.replace(/\n/g , '<br />' %> 那么为什么第一种方法不起作用呢?有没有一种方法可以让它在所有情况下都起作用呢?如果模板引擎将反斜杠用作转义字符,则可能需要将其加倍: <% str.replace(/\\n/g , '<br />' %> 哇,这是一个非常优雅的解决方案

我有一个字符串,
str
,其中包含多行内容,我想使用上面提到的
replace
在HTML页面上用
underline.js
正确显示它,如下所示:

<%= str.replace(/\n/g , '<br />' %>

那么为什么第一种方法不起作用呢?有没有一种方法可以让它在所有情况下都起作用呢?

如果模板引擎将反斜杠用作转义字符,则可能需要将其加倍:

<% str.replace(/\\n/g , '<br />' %>

哇,这是一个非常优雅的解决方案!谢谢。哦,对不起@muistooshort,我错过了这个问题中的
=
。但是,它在我的HTML文件中。什么是“包含多行内容的字符串”?转义(
\
)是如何处理的?@Bergi它是一个字符串,在通用文本编辑器中查看时,将显示跨越多行的内容(其中包含换行符)。但它在网页上只显示了一行,因为浏览器会压缩所有的空白。至于转义,我认为
\n
在到达javascript解释器之前被删除或修改了。然而,minitech下面的回答显示了一种避免完全自己处理换行符和其他空白的方法。你基本上是告诉浏览器按照字面意思来理解它们,而不是忽略它们。@udiboy1209:啊,对了。我想问的是(多行?)模板是如何存储的——作为脚本中的字符串,作为html文档的节点?@Bergi,在minitech的回答解决了这个问题后,我基本上不再深入研究这个问题。如果您感兴趣,可以查看github上的源代码。我提到的问题是在该插件的
index.html
页面中。
<% str.replace(/\\n/g , '<br />' %>