这篇文章主要介绍了 js 去字符串前后空格的实现方法,重点推荐使用正则的方式,感兴趣的小伙伴们可以参考一下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
当我们进行一些页面编辑时,字符串前后的空格,通常是无效的。因此需要在获取信息时,进行过滤。
比如:
输入:[空格][空格]a[空格]b[空格][空格][空格]
得到:a[空格]b
代码如下:
去掉前面的空格
- function LTrim(str){
- var i;
- for(i=0;i<str.length;i++){
- if(str.charAt(i)!=" ")
- break;
- }
- str = str.substring(i,str.length);
- return str;
- }
去掉后面的空格
- function RTrim(str){
- var i;
- for(i=str.length-1;i>=0;i--){
- if(str.charAt(i)!=" ")
- break;
- }
- str = str.substring(0,i+1);
- return str;
- }
使用方法
- function Trim(str){
- return LTrim(RTrim(str));
- }
【推荐】使用正则的方式
- String.prototype.Trim = function(){
- return this.replace(/(^\s*)|(\s*$)/g, "");
- }
- String.prototype.LTrim = function(){
- return this.replace(/(^\s*)/g, "");
- }
- String.prototype.RTrim = function(){
- return this.replace(/(\s*$)/g, "");
- }
补充一些其他方法:
第一种:循环检查替换
- //供使用者调用
- function trim(s){
- return trimRight(trimLeft(s));
- }
- //去掉左边的空白
- function trimLeft(s){
- if(s == null) {
- return "";
- }
- var whitespace = new String(" \t\n\r");
- var str = new String(s);
- if (whitespace.indexOf(str.charAt(0)) != -1) {
- var j=0, i = str.length;
- while (j < i && whitespace.indexOf(str.charAt(j)) != -1){
- j++;
- }
- str = str.substring(j, i);
- }
- return str;
- }
- //去掉右边的空白 www.phperz.com
- function trimRight(s){
- if(s == null) return "";
- var whitespace = new String(" \t\n\r");
- var str = new String(s);
- if (whitespace.indexOf(str.charAt(str.length-1)) != -1){
- var i = str.length - 1;
- while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){
- i--;
- }
- str = str.substring(0, i+1);
- }
- return str;
- }
第二种:裁剪字符串方式
- function trim(str){
- str = str.replace(/^(\s|\u00A0)+/,'');
- for(var i=str.length-1; i>=0; i--){
- if(/\S/.test(str.charAt(i))){
- str = str.substring(0, i+1);
- break;
- }
- }
- return str;
- }
来源: http://www.phperz.com/article/17/0217/266941.html