您的位置:首页 > Web前端 > JavaScript

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

2013-08-27 13:11 746 查看
第一种:循环检查替换

[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;   

}  

经过测试第五种方法在处理长字符串时效率最高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js 正则 whitespace