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," ","&nbsp;") text=replace(text,"<s

目前我正在研究存储文本区域段落

<textarea rows="10"></textarea>

我可以保存整个内容,但问题是它不包括换行符。我想知道从textarea到数据库存储空格/换行符的最佳实践是什么。另外,我需要防止用户在文本区域内插入

这是一个好地方吗

e.g.
text=replace(text,"/n","<br>")
text=replace(text," ","&nbsp;") 
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建议之外的其他选项是

  • 使用实际使用/n.制动管路的
    标记。。这样你就不需要操纵文本了。。
    <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;
    }
    
    您必须自定义
    块的样式,因为默认设置类似于控制台字体和样式
  • 使用带有自定义样式的禁用标记以避免操纵文本
  • 下面是显示这两个示例的小提琴(我使用JS来注入值,但当您从PHP注入值时,它也应该可以工作):

    
    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