具体的算法为:
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
去掉字符串前后所有空格:代码如下:
function Trim(str)
{
return str.replace(/(^\s*)|(\s*$)/g, "")
}
说明:
如果使用jQuery直接使用$.trim(str)方法即可,str表示要去掉前后所有空格的字符串。
2、 去掉字符串中所有空格(包括中间空格,需要设置第2个参数为:g)
代码如下:
function Trim(str,is_global)
{
var result
result = str.replace(/(^\s+)|(\s+$)/g,"")
if(is_global.toLowerCase()=="g")
{
result = result.replace(/\s/g,"")
}
return result
}
3、现在大部分浏览器中基本上都支持字符串的 trim 函数,但是为了兼容不支持的浏览器,我们最好还是在 Js 文件中加入以下代码(不需要清除换行符的请删除 \n 制表符删除 \t):
if (!String.prototype.trim) {
/*---------------------------------------
* 清除字符串两端空格,包含换