关于textarea中换行、回车、空格的识别与处理

###需求:
在textarea中输入文字,提交给后台后,后台输出在另一个页面,文字按原格式显示。

###兼容性:
IE9以上、FF、chrome在换行处匹配/\n/ IE7-8在换行处先匹配/\r/,再匹配/\n/

###问题解决:

1、把\n \r\n \s 分别替换为  
这种情况是替换后的字符串能够被网页解析,这样在网页上就能看到换行、空格等特殊字符了。
具体实现:

//原始字符串
var string = "欢迎访问!\r\nhangge.com    做最好的开发者知识平台";
//替换所有的换行符
string = string.replace(/\r\n/g,"
") //兼容i7、i8 string = string.replace(/\n/g,"
"); //i9及以上 //替换所有的空格(中文空格、英文空格都会被替换) string = string.replace(/\s/g," "); //输出转换后的字符串 console.log(string);

如果你要替换为空时可以这样写

//原始字符串
var string = "欢迎访问!\r\nhangge.com    做最好的开发者知识平台";
//去掉所有的换行符
string = string.replace(/\r\n/g,"")
string = string.replace(/\n/g,"");
//去掉所有的空格(中文空格、英文空格都会被替换)
string = string.replace(/\s/g,"");
//输出转换后的字符串
console.log(string);

2、把\n \r \s 分别替换为ASCII码的chr(10)、chr(13)、chr(32)
这种情况是替换成html标签后的字符串不能够被网页解析,这样在网页上就只看到一串字符串而已,而替换成ascii码则可以在任何地方显示出换行、空格。
具体实现:(js)

//原始字符串
var string = "欢迎访问!\r\nhangge.com    做最好的开发者知识平台";
//去掉所有的换行符
string = string.replace(/\r/g,String.fromCharCode(13))
string = string.replace(/\n/g,String.fromCharCode(10));
//去掉所有的空格(中文空格、英文空格都会被替换)
string = string.replace(/\s/g,String.fromCharCode(32));
//输出转换后的字符串
console.log(string);

###注意:

1、var str=‘aabbccaa’; str=str.replace(‘aa’,‘dd’);
使用replace方法替换字符串用上面的写法,它只替换第一次出现的,之后不在替换。如果你要替换全部,要使用正则写法:str=str.replace(/aa/g,‘dd’);

2、使用document.getElementById(“ts”).value.indexOf("\n");可以获取字符串出现的第一次的位置,通过这个可以判断字符串是否存在。

你可能感兴趣的:(前端,HTML)