Html 如何在textarea元素中添加新行?

Html 如何在textarea元素中添加新行?,html,textarea,line-breaks,Html,Textarea,Line Breaks,我想在文本区域中添加一个换行符。我尝试使用\n和标记,但不起作用。您可以看到上面的HTML代码。你能帮我在文本区插入一个换行符吗 <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

我想在文本区域中添加一个换行符。我尝试使用
\n

标记,但不起作用。您可以看到上面的HTML代码。你能帮我在文本区插入一个换行符吗

<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>
这是我的语句一。\n这是我的语句二
这是我的声明一。
这是我的声明二
您可能希望使用
\n
而不是
/n

这是我的陈述之一。
<textarea cols='60' rows='8'>This is my statement one.

This is my statement2</textarea>
这是我的声明
显示其有效性的小提琴:

如果您确实希望它位于源文件中的一行上,可以插入换行符和回车符的HTML字符引用,如@Bakudan的回答所示:

这是我的声明一
这是我的陈述2试试这个。。它的工作原理是:

<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;")));
$(“textarea#test”).val(替换($(“textarea#test”).val(),“
”,“ ;”);
试试这个:


这是我的声明一
这是我的陈述2
要在文本区域内获得新行,请在此处放置实际的换行符:

这是我的声明之一。

这是我的陈述2
我发现
字符串。fromCharCode(13,10)
在使用视图引擎时很有用。

这将创建一个包含实际换行符的字符串,从而强制视图引擎输出换行符,而不是转义版本。例如:使用NodeJS EJS视图引擎-这是一个简单的示例,其中应替换任何\n:

viewHelper.js

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


经过大量测试后,下面的代码在TypesCrept中对我有效

 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);
}
导出函数ReplaceNewline(输入:字符串){
var newline=String.fromCharCode(13,10);
返回ReplaceAll(输入“
”,newline.toString()); } 导出函数ReplaceAll(str、find、replace){ 返回str.replace(新的RegExp(查找'g'),replace); }
我认为您混淆了不同语言的语法

  • 
    
    是(ASCII 10的HtmlEncoded值或)HTML字符串中的换行符文本。但是换行符在HTML中不作为换行符呈现(参见底部的注释)

  • \n
    Javascript字符串中的换行字符文字(ASCII 10)


  • 是HTML中的换行符。许多其他元素,例如
    等,也会呈现换行符,除非用某些样式覆盖

希望以下内容能让事情变得更清楚:

T.innerText=“LF的位置:”+T.value.indexOf(“\n”);
p1.innerHTML=t.value;
p2.innerHTML=t.value.replace(“\n”和“
”); p3.innerText=t.value.replace(“\n”和“
”)
第1行和第10行;第2行

My
.replace()
函数使用其他答案中描述的模式无效。对我的案例有效的模式是:

var str = "Test\n\n\Test\n\Test";
str.replace(/\r\n|\r|\n/g,'&#13;&#10;');

// str: "Test&#13;&#10;&#13;&#10;Test&#13;&#10;Test"
T.innerText=“LF的位置:”+T.value.indexOf(“\n”)

p3.innerText=t.value.replace(“\n”和“”);
第1行和第10行;第2行


只需使用


例:

<textarea>
blablablabla <br> kakakakakak <br> fafafafafaf 
</textarea>

布拉布拉布拉
卡卡卡卡
fafafaf
结果:

blablablabla
kakakakak
faf

使用CSS在文本区域中打断输入关键字行:

white-space: pre-wrap;

如果您正在使用react

函数内部

const handleChange=(e)=>{
const name = e.target.name;
let value = e.target.value;
value = value.split('\n').map(str => <span>{str}<br/></span>);
SetFileds({ ...fileds, [name]: value });
}
const handleChange=(e)=>{
const name=e.target.name;
设值=e.target.value;
value=value.split('\n').map(str=>{str}
); SetFileds({…fileds,[name]:value}); }
嗯,文字
\n
也不起作用,它需要实际的换行符。当然可以。但我(错误地?)假设他已经知道这一点。实际上是$(“textarea#test”).val()。替换(/\n/g, ;);(这将替换所有出现的新行)新行=String.fromCharCode(13,10);是我在运行时以编程方式添加新行的唯一有效方法+关于这一点,我想建议一种更简单的替换all的方法:var regExp=newregexp(find,“gi”);str=str.replace(regExp,replace);我做了
s=s.replace(/\\n/g,String.fromCharCode(13,10))
。这是一种魔力。谢谢。@LittleAlien-根据OP问题回答,显然问题不仅仅解决了

足以解析
\n
?这不取决于Windows和macOS是否需要换行符和回车符,甚至解析正确吗?@AchaseTheDay是的,但它不是macOS-它是Linux/BSD和macOSWindows@Bakudan哦我认为基于Unix的macOS仍然存在这个问题。但是你肯定是对的,区别更为普遍。虽然这段代码可能回答了这个问题,但提供了关于为什么和/或这段代码如何回答这个问题的附加上下文提高了它的长期价值。从表面上看,这篇文章看起来很复杂,但实际上包含了很多有用的信息。如果您正在计划向
添加行,这就是您需要的帖子<代码>
是我一直在寻找的。这应该是更高的。这是实现所需结果的最简单方法,谢谢@suraj。这就是答案
p3.innerText = t.value.replace("\n", "");

<textarea id="t">Line 1&#10;Line 2</textarea>

<p id='p3'></p>
<textarea>
blablablabla <br> kakakakakak <br> fafafafafaf 
</textarea>
white-space: pre-wrap;
const handleChange=(e)=>{
const name = e.target.name;
let value = e.target.value;
value = value.split('\n').map(str => <span>{str}<br/></span>);
SetFileds({ ...fileds, [name]: value });
}