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

JavaScript014

js去掉字符串前后空格的五种方法,第1张

第一种:循环检查替换

[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=" Java Script">

</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-1i>=0i--){

if(/\S/.test(str.charAt(i))){

str = str.substring(0, i+1)

break

}

}

return str

}

经过测试第五种方法在处理长字符串时效率最高。

方法:可以通过正则来替换掉空格

解释:这跟nodejs 没啥关系的,其实就是相当于js中的去除是一样的。

实现代码:

var trim = function(str){

var trimLeft = /^\s+/,

trimRight = /\s+$/

str.replace( trimLeft, "" ).replace( trimRight, "" )

}

//代码注释:定义两个正则,一个是左侧空格的比对,一个是右侧空格的比对,

将字符串的左右两侧替换为""即可。

//参考:jquery.js