在文本区域的新行

<textarea cols='60' rows='8'>This is my statement one.\n This is my statement2</textarea> <textarea cols='60' rows='8'>This is my statement one.<br/> This is my statement2</textarea> 

我试了两个,但新的一行是不反映,同时呈现的HTML文件。 我怎样才能做到这一点?

试试这个:

 <textarea cols='60' rows='8'>This is my statement one.&#13;&#10;This is my statement2</textarea> 

&#10; 换行和&#13; 回车是HTML实体维基百科 。 这样你实际上是parsing新行(“\ n”),而不是将其显示为文本。

 <textarea cols='60' rows='8'>This is my statement one. This is my statement2</textarea> 

小提琴显示它的工作原理: http : //jsfiddle.net/trott/5vu28/ 。

如果您确实希望将其放在源文件的单行中,则可以插入行换行符和回车符的HTML字符引用,如@Bakudan答案中所示:

 <textarea cols='60' rows='8'>This is my statement one.&#13;&#10;This is my statement2</textarea> 

我发现String.fromCharCode(13, 10)在使用视图引擎时很有帮助。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

这将创build一个string,其中包含实际的换行符,因此强制视图引擎输出换行符而不是转义版本。 例如:使用NodeJS EJS视图引擎 – 这是一个简单的例子,任何\ n应该被replace:

viewHelper.js

 exports.replaceNewline = function(input) { var newline = String.fromCharCode(13, 10); return input.replaceAll('\\n', newline); } 

EJS

 <textarea><%- viewHelper.replaceNewline("Blah\nblah\nblah") %></textarea> 

呈现

 <textarea>Blah blah blah</textarea> 

全部replace:

 String.prototype.replaceAll = function (find, replace) { var result = this; do { var split = result.split(find); result = split.join(replace); } while (split.length > 1); return result; }; 

为了在textarea里面得到一个新的行,把一个实际的linebreak放在那里:

 <textarea cols='60' rows='8'>This is my statement one. This is my statement2</textarea> 

试试这个..它的工作原理:

 <textarea id="test" cols='60' rows='8'>This is my statement one.&#10;This is my statement2</textarea> 

取代
标签:

 $("textarea#test").val(replace($("textarea#test").val(), "<br>", "&#10;"))); 

您可能想使用\n而不是/n

我认为你混淆了不同语言的语法。

  • &#10; 是(ASCII 10的HtmlEncoded值)或HTMLstring中的换行符字符。 它不会在HTML中呈现为换行符(请参阅底部的注释)。

  • \nJavascriptstring中的换行字符文字(ASCII 10)。

  • <br/>在HTML中是一个换行符。 许多其他的元素,例如<p><div>等也会呈现换行符,除非被某些样式覆盖。

希望下面的例子能更清楚地说明一下:

 T.innerText = "Position of LF: " + t.value.indexOf("\n"); p1.innerHTML = t.value; p2.innerHTML = t.value.replace("\n", "<br/>"); p3.innerText = t.value.replace("\n", "<br/>"); 
 <textarea id="t">Line 1&#10;Line 2</textarea> <p id='T'></p> <p id='p1'></p> <p id='p2'></p> <p id='p3'></p> 

经过大量testing,以下代码在Typescreipt中适用于我

  export function ReplaceNewline(input: string) { var newline = String.fromCharCode(13, 10); return ReplaceAll(input, "<br>", newline.toString()); } export function ReplaceAll(str, find, replace) { return str.replace(new RegExp(find, 'g'), replace); }