问题:
获取到textarea标签内的格式(换行符、空格)取到,存入数据库,展示的时候能够保留基本格式。
解决思路:
IE9以上、FF、chrome的换行为\n, IE7-8的时候换行为\r\n,空格都为\s
所以需要利用replace把不同浏览器的\n和\r\n都替换为html代码的</br>,把\s空格替换为html的 
注:如果使用jQuery的val()获取textarea的值,取得的值是不含有回车(\r)字符的。但是如果该值是通过 XHR 传递给服务器的,回车(\r)字符会被保留(或者是被浏览器添加的,但是在原始数据中并不包含回车(\r))。
该例对\r和\r\n都做了replace替换,实际效果不受影响,只需要注意一下有区别。
代码如下
html:
<textarea name="" id="text" cols="30" rows="3"></textarea> <input type="button" id="btn" value="测试测试" /> <div id="show"></div>
js:
document.getElementById("btn").onclick = function() { var strContent = document.getElementById("text").value; alert("处理前的strContent为\r\n"+strContent); strContent = strContent.replace(/\r\n/g, '<br/>'); //IE9、FF、chrome strContent = strContent.replace(/\n/g, '<br/>'); //IE7-8 strContent = strContent.replace(/\s/g, ' '); //空格处理 alert("转换之后的html代码为\r\n"+strContent); document.getElementById("show").innerHTML = strContent; };
扩展:
写一个公共函数处理该类问题。
/* * 根据Value格式化为带有换行、空格格式的HTML代码 * @param strValue {String} 需要转换的值 * @return {String}转换后的HTML代码 * @example * getFormatCode("测\r\n\s试") => “测<br/> 试” */ var getFormatCode=function(strValue){ return strValue.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' '); }
调用getFormatCode即可得到拿到转换后的代码,随后可按需求自行处理(入库等)。
---------------------
作者:Joker_Ye
来源:CSDN
原文:https://blog.csdn.net/hj7jay/article/details/74279967
版权声明:本文为博主原创文章,转载请附上博文链接!
相关推荐
### textarea换行符处理 在Web开发中,`textarea`元素是HTML中用于接收多行文本输入的一个常用组件。在用户通过`textarea`输入文本时,可能会遇到换行符(通常为`\r\n`)的问题。这些换行符在不同的环境中可能会被...
默认情况下,当用户在`textarea`中按下回车键时,浏览器会插入一个`\n`(换行符)来表示新行。对于空格,连续的多个空格在HTML渲染时会被合并为一个空格。在后端处理或存储这些数据时,可能需要进一步的转换。 1. *...
错误的做法是将`</textarea>`放在新的一行,这会导致换行符和空格被计入`textarea`的内容中。正确的做法是确保`<textarea>`和`</textarea>`在同一行内,如下所示: ```html <textarea>你好</textarea> ``` 2. `...
因此,为了实现跨浏览器的兼容性,我们需要根据浏览器类型来处理换行符。 可以使用 `document.all` 来检测是否为 IE 浏览器。如果 `document.all` 存在,则说明当前浏览器是 IE 或旧版的 Edge,此时需要用 `\r\n` ...
2. **显示时处理文本**:在从后台获取文本后,通过 JavaScript 对文本进行处理,移除所有空格,然后将其放入 `<pre>` 标签中。`<pre>` 标签可以保留文本的原始格式,包括换行和空格,非常适合展示代码或保持格式不变...
3. 在JSP页面中,需要对字符串进行处理,将换行符和空格转换为适当的HTML标签或实体,以保持原有格式。 4. 设置正确的字符编码,确保中文等特殊字符能够正确处理。 5. 在将数据存入数据库之前,需要检查并避免SQL...
在某些场景下,例如从数据库读取存储的文本并希望在`textarea`中编辑时,我们可能需要将HTML中的` `标签还原为换行符,以便于编辑和后续处理。 #### JavaScript函数:replaceTextarea2() 为此,`...
在给出的示例中,问题在于同事尝试使用`.text()`来获取textarea的值,这导致换行符被转换成了`\n`字符串,而不是实际的换行。因此,使用JavaScript的`replace()`方法替换`\n`无效,因为实际的换行符已经不存在了。 ...
在网页开发中,用户在`textarea`输入框中按下回车键时,浏览器并不会自动将回车转换为换行符,而是将它们保存为特定的字符序列,通常是`\r\n`(回车换行)。在PHP中,我们需要手动处理这些特殊字符以便正确地显示和...
为了在textarea中替换掉所有的回车和换行符,可以使用JavaScript的正则表达式配合`replace`方法。正则表达式中的`/g`标志表示全局匹配,意味着会替换掉所有符合条件的字符。对于`\n`或`\r\n`,可以分别用`/\n/g`和`/...
这通常是因为在HTML页面上,开发者可能没有注意到`<textarea>`元素中的文本直接换行或者在换行时输入了不可见的换行符`\r\n`(回车换行符),而这些换行符在提交到MySQL数据库时会被自动转换为普通的空格。...
`<pre>`标签的作用是保留其中的空白字符,包括空格、制表符和换行符,使得它们在浏览器中按照原样显示。 以下是详细的解决步骤: 1. **数据保存**: - 当用户在`<textarea>`中输入文本并提交时,`\n`这样的换行符...
在网页开发中,jQuery是一个非常流行的JavaScript库,它极大地简化了DOM操作、事件处理和Ajax交互等任务。...在实际开发中,根据具体需求,还可以进一步定制验证逻辑,比如区分中英文字符、考虑换行符等因素。
因为textarea通常以回车换行符(在Windows系统中是\r\n,而在Unix/Linux系统中是\n)来分隔用户输入的每一行。在PHP中,我们使用explode函数来根据特定的分隔符拆分字符串。由于本例中讨论的是Windows系统,我们将...
- **换行符处理**:在PHP中,除了`\n`,还有`\r\n`(Windows系统中的换行符)和`\r`(Mac OS老版本中的换行符)。`nl2br()`主要处理`\n`,但实际处理跨平台的文本时,可能需要考虑其他换行符。 - **PHP_EOL**:这个...
在*** Web Forms中,`<textarea>`是一个多行文本输入控件,用户在其中输入的文本会被保留换行符和空格。如果我们要保留这些格式特性,就需要将文本中的换行符`\n`转换为HTML中的` `标签,以确保这些换行在网页上...