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. This is my statement2</textarea>
这是我的声明一;这是我的声明
替换
标记:
$("textarea#test").val(replace($("textarea#test").val(), "<br>", " ")));
$(“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,' ');
// str: "Test Test 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 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 });
}