Javascript 从textarea存储换行符,存储到数据库并在前端显示?
目前我正在研究存储文本区域段落Javascript 从textarea存储换行符,存储到数据库并在前端显示?,javascript,php,jquery,html,textarea,Javascript,Php,Jquery,Html,Textarea,目前我正在研究存储文本区域段落 <textarea rows="10"></textarea> 我可以保存整个内容,但问题是它不包括换行符。我想知道从textarea到数据库存储空格/换行符的最佳实践是什么。另外,我需要防止用户在文本区域内插入 这是一个好地方吗 e.g. text=replace(text,"/n","<br>") text=replace(text," "," ") text=replace(text,"<s
<textarea rows="10"></textarea>
我可以保存整个内容,但问题是它不包括换行符。我想知道从textarea到数据库存储空格/换行符的最佳实践是什么。另外,我需要防止用户在文本区域内插入
这是一个好地方吗
e.g.
text=replace(text,"/n","<br>")
text=replace(text," "," ")
text=replace(text,"<script>","")
text=replace(text,"</script>","")
例如。
text=replace(文本“/n”和“
”)
text=替换(文本“,”)
text=替换(文本“,”)
text=替换(文本“,”)
谢谢它确实存储换行符,但当您以HTML格式输出时,您无法看到它。 使用
nl2br()
函数将换行符转换为
标记,以便可以在HTML中看到换行符
如果要防止文本中出现一些HTML标记,请使用
strip\u tags()
函数(如果愿意,可以允许使用一些标记)。不要忘了使用mysql\u real\u escape\u string()或类似的方法来转义数据。除了Paul建议之外的其他选项是
标记。。这样你就不需要操纵文本了。。
<pre id="pre">
</pre>
<textarea id="textarea" disabled="disabled">
</textarea>
var str = "Hello I'm a pre-formatedt text \nand this is a new line";
$("#pre").html(str);
$("#textarea").text(str);
#pre
{
font-family: verdana,helvetica,arial,sans-serif;
font-size:1em;
}
#textarea
{
font-family: verdana,helvetica,arial,sans-serif;
font-size:1em;
width:100%;
border:none;
background: none;
}
您必须自定义
块的样式,因为默认设置类似于控制台字体和样式
var str=“你好,我是预格式化的文本\n这是一行新行”;
$(“#pre”).html(str);
$(“#textarea”).text(str);
#前
{
字体系列:verdana、helvetica、arial、无衬线字体;
字号:1em;
}
#文本区
{
字体系列:verdana、helvetica、arial、无衬线字体;
字号:1em;
宽度:100%;
边界:无;
背景:无;
}
如果是我,我将完全按照您从用户那里收到的方式插入数据。这是因为您可能需要在将来某个时候提取该数据,而不是将其保存在HTML中-例如用于报告或放入电子表格或其他内容
当然,在提取数据并将其显示在页面上时,您需要格外小心-但无论如何,您都应该这样做,并且您不希望依赖于您的输入是完美的-您可能需要在将来替换/更新它。它确实存储换行符,您只是希望bowser使用它们,当浏览器需要html时-简短解决方案
nl2br()
谢谢。这意味着我只需要将数据直接插入数据库,而不是进行任何修改?PHP字符串中的换行符是“\n”
,而不是/n