js中想要去掉左右空格该怎么办,类似php中的trim函数

JavaScript010

js中想要去掉左右空格该怎么办,类似php中的trim函数,第1张

写成类的方法格式如下:

(str.trim())

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

写成函数可以这样:(trim(str))

<script type="text/javascript">

function trim(str){ //删除左右两端的空格

     return str.replace(/(^\s*)|(\s*$)/g, "")

}

function ltrim(str){ //删除左边的空格

     return str.replace(/(^\s*)/g,"")

}

 function rtrim(str){ //删除右边的空格

     return str.replace(/(\s*$)/g,"")

}

</script>

第一种:循环检查替换

[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

}

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

去掉空格的本质就是将字符串中的空字符串删除,根据这个解决思路,我们有多种解决方法。

方法一:遍历法。遍历字符串中的字符保留有效字符

function trim(str){

    var i

    var rst = ''

    for(i=0i<str.lengthi++){

        var c = str.charAt(i)

        if(c!==" "){

            rst = rst + c

        }

    }

    return rst

}

var testStr = " te s t  "

testStr = trim(testStr)

console.log(testStr )

//test

方法二:利用数组。利用数组特性简化代码

function trim(str){

    var chars = str.split(" ")

    return chars.join('')

}

var testStr = " te s t  "

testStr = trim(testStr)

console.log(testStr )

//test

方法三:递归法。利用正则表达式递归去除空格符

function trim(str) {

  return str.replace(/(^\s+)|(\s+$)/g, "")

}

var testStr = " te s t  "

testStr = trim(testStr)

console.log(testStr )

//test

方法四:利用jquery.js。如果你使用jquery,可以使用jquery里的trim函数

var testStr = " te s t  "

testStr = $.trim(testStr)

console.log(testStr )

//test