JS去掉字符串的前后空格怎么处理?

JavaScript013

JS去掉字符串的前后空格怎么处理?,第1张

具体的算法为:

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一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

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

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

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

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

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

实现代码:

var trim = function(str){

var trimLeft = /^\s+/,

trimRight = /\s+$/

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

}

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

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

//参考:jquery.js