Answers:
试试这个:
<textarea cols='60' rows='8'>This is my statement one. This is my statement2</textarea>
换行符和
回车符是HTML实体Wikipedia。这样,您实际上是在分析新行(“ \ n”),而不是将其显示为文本。
足够的解析\n
?
我发现String.fromCharCode(13, 10)
使用视图引擎时很有帮助。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
这将创建一个包含实际换行符的字符串,从而强制视图引擎输出换行符而不是转义版本。例如:使用NodeJS EJS视图引擎-这是一个简单的示例,其中所有\ n都应替换:
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>
全部替换:
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;
};
s = s.replace(/\\n/g, String.fromCharCode(13, 10) )
。虽然这是魔术。谢谢。
<textarea cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
Fiddle显示它有效:http : //jsfiddle.net/trott/5vu28/。
如果您确实希望将其放在源文件的一行中,则可以为换行符和回车符插入HTML字符引用,如@Bakudan的答案所示:
<textarea cols='60' rows='8'>This is my statement one. This is my statement2</textarea>
我认为您在混淆不同语言的语法。
是(HTML字符串中的HtmlEncoded值或)HTML字符串中的换行字符文字。但是换行符不会不呈现在HTML(见注在底部)换行。
\n
是Javascript字符串中的换行字符文字(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 Line 2</textarea>
<p id='T'></p>
<p id='p1'></p>
<p id='p2'></p>
<p id='p3'></p>
关于HTML的几点注意事项:
innerHTML
值TEXTAREA
不呈现Html。请尝试以下操作:<textarea>A <a href='x'>link</a>.</textarea>
进行查看。P
元件呈现所有连续白色空间(包括新的线)作为一个空间。TEXTAREA
呈现LF作为文本区域箱内的新线。<textarea/>
这是您需要的帖子!
<br/>
是我一直在寻找的东西
使用CSS在Textarea中输入Enter关键字行:
white-space: pre-wrap;
试试这个..它的工作原理:
<textarea id="test" cols='60' rows='8'>This is my statement one. This is my statement2</textarea>
替换
标签:
$("textarea#test").val(replace($("textarea#test").val(), "<br>", " ")));
要在文本区域内换行,请在此处实际换行:
<textarea cols='60' rows='8'>This is my statement one.
This is my statement2</textarea>
经过大量测试,以下代码在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);
}
我.replace()
使用其他答案中描述的模式的功能无效。适用于我的情况的模式是:
var str = "Test\n\n\Test\n\Test";
str.replace(/\r\n|\r|\n/g,' ');
// str: "Test Test Test"
T.innerText =“ LF的位置:” + t.value.indexOf(“ \ n”);
p3.innerText = t.value.replace("\n", "");
<textarea id="t">Line 1 Line 2</textarea>
<p id='p3'></p>
只需使用<br>
ex:
<textarea>
blablablabla <br> kakakakakak <br> fafafafafaf
</textarea>
结果:
blablablabla
kakakakakak
fafafafafaf