JS中如何去掉字符串的首尾空格,可能会不止一个格

JavaScript022

JS中如何去掉字符串的首尾空格,可能会不止一个格,第1张

ES5 及更高版本直接用 String 对象自带的 trim() 方法就可以了。

var str = '  hello world  '

console.log(str.trim())

再低版本的需要先自行引入 polyfill:

if (!String.prototype.trim) {

  String.prototype.trim = function () {

    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')   

  }

}

关于去掉两头空格,jquery库提供了$.trim()方法,可是JS呢,我写了.trim(),在FF里有效果,但在IE里就没效了,群里的朋友说,如果浏览器实现了trim(),就有,如果浏览器没实现,只能用正则替换。

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

用的时候就是直接

var 变量=trimStr(需要去空格的字符串)

具体的算法为:

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网页增加动态功能。