当前位置: 代码迷 >> JavaScript >> js去掉字符串前前后后空格的五种方法
  详细解决方案

js去掉字符串前前后后空格的五种方法

热度:146   发布时间:2012-07-27 11:03:00.0
js去掉字符串前后空格的五种方法

第一种:循环检查替换
[javascript]
//供使用者调用??
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.2cto.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;??
}?
第二种:正则替换
[javascript]
<SCRIPT LANGUAGE="JavaScript">??
<!--??
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, "");??
}??
//-->??
</SCRIPT>?
第三种:使用jquery
[javascript]
$.trim(str)?
jquery内部实现为:
[javascript]
function trim(str){???
??? return str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');???
}???
第四种:使用motools
[javascript]
function trim(str){???
??? return str.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, '');???
}??
第五种:裁剪字符串方式
[javascript]
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;???
}??
经过测试第五种方法在处理长字符串时效率最高。


摘自? 执行梦想代码