转自:http://www.cnblogs.com/zhenmingliu/archive/2011/12/27/2303931.html
在easyui中的datagrid中使用行内编辑时textarea的换行保存到mysql数据库为\n
在textarea中输入回车符 在js读取textarea中的值有\r\n然后到业务层转换到string中就有可能变成空格形式然后被存入数据库,当在取出此值的时候则会变成空格的形式,因此我们需要将不显示的\r\n替换一下。
在js取textarea的时候:
如果用
var str = document.getElementById("textarea").value;
str = str.replace("\r\n","<br>");
则只会将第一个\r\n替换成<br>,如何将所有n个\r\n替换成<br>呢?难道要无限个replace吗?
其实不用,replace可以和正则表达式结合,一次替换所有的\r\n。
var reg=new RegExp("\r\n","g");
str= str.replace(reg,"\r\n");
本人自己试验:但是这里我使用的是str = str.replace("\n","<br>");,其实用<br>或者其他字符替换不是最重要的\n,我在IE和FIREFOX和chrome下已经测试 ,仅仅使用\n即可
这样str中所有的\r\n就替换成<br>了.然后可以将其存入数据库。
在取出的时候 只用将值在替换回来即可
var reg=new RegExp("<br>","g");
stt= str.replace(reg,"\r\n");
document.getElementById("textarea").value=str;
本人自己试验:
var reg=new RegExp("<br>","g");
stt= str.replace(reg,"\n");
更加详细的分析和应用可以参考JavaScript的replace方法与正则表达式结合应用讲解
下面是我写的2个函数 直接放到通用包中 以后使用可以替换
function replaceTextarea1(str){
var reg=new RegExp("\r\n","g");
var reg1=new RegExp(" ","g");
str = str.replace(reg,"<br>");
str = str.replace(reg1,"<p>");
return str;
}
function replaceTextarea2(str){
var reg=new RegExp("<br>","g");
var reg1=new RegExp("<p>","g");
str = str.replace(reg,"\r\n");
str = str.replace(reg1," ");
return str;
}
2. html中通<textarea>标签提交的内容会将回车转变成"\r\n",再将提交的内容放入<textarea>标签中显示时,回车符会还原成正常的换行。
但当带有"\r\n"的字符串放在html的普通文本域中显示时 ,原来的换行效果会转变成空格,因此,需要在显示前将字符串中的"\r\n"替换为"</br>"。
另外,还有一点需要注意:EL表达式会将"</br>"换行符转变成"</br>","<"和">"分别对应"<"和">",也就是说,到了页面上,还是显示为"</br>"(呵呵,EL的智能化程度太高了),为了补救这一点,需要使用jsp标签(<%= %>)来进行显示。
所以当需要在普通文本域中显示由<textarea>提交的内容时,可以直接在数据库里存储不经过处理的字符串,而只在显示前将"\r\n"替换为"</br>",然后在页面上使用<%= %>来显示这些内容.
3. 如果将通过textbox提交到数据库中的空格和回车正确显示出来
public string MyReplace(string mystr)
{
if(mystr == null || mystr == "" )
{
return(" ");
}
else
{
mystr = mystr.Replace("\n\r","<br>");
mystr = mystr.Replace("\r","<br>");
mystr = mystr.Replace("\t"," ");
return(mystr);
}
}
相关推荐
关于Textarea的换行问题,是前端开发中一个常见的议题,特别是在处理用户输入的多行文本时。在HTML中,Textarea是一种允许用户输入多行文本的表单控件,其换行处理方式对于用户体验和数据存储至关重要。然而,在这段...
处理`textarea`中的换行和空格通常涉及到用户输入的格式化和处理,这在多个场景下都是必要的,例如数据存储、表单提交或者富文本编辑等。本篇文章将深入探讨如何在JavaScript或相关前端技术中处理`textarea`的换行和...
问题解决1: 一开始是提交数据的时候格式是AAA<BR>BBB,但是这是显示换行,其实在TextArea里面并不是真正按行存放的,因为这个时候再提交给另外一个TextArea的时候就是显示AAABBB,而不是换行显示了,因此仅仅是显示...
标题中的“展示Html : 文本转HTML格式 解决Textarea换行问题”暗示了这是一个关于将纯文本转换为HTML格式以适应在网页上显示,特别是针对textarea控件中换行处理的技术点。在网页开发中,textarea通常用于输入多行...
js 特效 html 特效 textarea是否自动换行
当用户在`textarea`中按下回车键时,浏览器会将其识别为换行符(`\r\n`),这在JavaScript读取`textarea`的值时也会体现出来。然而,在后续的数据处理过程中,例如在业务逻辑层将这些值转换成字符串形式并存储到...
当用户在 `textarea` 中输入并使用 JavaScript 提交文本时,空格和换行会被编码为 `/s` 和 `/n` 字符。在前端与后端交互时,处理这些特殊字符是确保文本正确显示的关键。 如果文本最终仍要在 `textarea` 中显示,...
用java swing的JTextArea很容易实现自动换行,但用Textarea却很难实现换行,所以发到网上供大家参考,大家一起学习学习!!!
textarea是否自动换行.rartextarea是否自动换行.rartextarea是否自动换行.rartextarea是否自动换行.rartextarea是否自动换行.rartextarea是否自动换行.rar
然而,一个常见的问题是在用户提交 `textarea` 内容时,原始输入的换行符(通常是 `\n`)在显示到页面上时并不会被浏览器识别为换行,导致所有文本显示在同一行。为了解决这个问题,我们需要在数据提交前将这些换行...
在默认情况下,`<textarea>`中的文本在显示时不会自动换行,这意味着如果你想要在textarea中实现换行,需要使用特定的字符序列来指示新的行开始。 在文本编辑器或者邮件客户端中,我们通常使用`\n`(也称为LF,Line...
具体来说,就是将用户在textarea控件中输入的换行符转换为HTML中可以正确显示为换行的标签。同时,替换其他的特殊字符也是为了保证内容在渲染到HTML页面时不会引起任何问题。 从给出的部分内容中我们可以看到一个名...
在给出的示例中,问题在于同事尝试使用`.text()`来获取textarea的值,这导致换行符被转换成了`\n`字符串,而不是实际的换行。因此,使用JavaScript的`replace()`方法替换`\n`无效,因为实际的换行符已经不存在了。 ...
!innerHTML是返回对象的HTML代码,而textarea是一个文本输入框,要返回它的内容应该用value属性 fsdfsd fsdfs dfsdf [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
在网页开发中,用户在`textarea`输入框中按下回车键时,浏览器并不会自动将回车转换为换行符,而是将它们保存为特定的字符序列,通常是`\r\n`(回车换行)。在PHP中,我们需要手动处理这些特殊字符以便正确地显示和...
然而,由于浏览器之间的兼容性问题,特别是在Internet Explorer(IE)和Firefox(FF)之间,`textarea` 的换行处理可能会有所不同,导致显示不一致。这个问题通常出现在用户在`textarea` 中输入文本,然后将这些文本...