在JavaScript语言中,字符串就是一种对象。
字符串的操作必须使用内置的构造器和设置方法来完成,JavaScript为字符串提供了很多方法,最常用的比如indexOf()、charAt()和substring()。然而,有一些其他开发语言中字符串的常用操作却没有提供,比如是去除字符串前后空格的trim()函数就没有提供。
在这里,为广大web开发者提供一个字符串trim()的源码,希望能为大家开发中提供方便:
function trim(s)
{
if (s == null)
{
return s;
}
var i;
var beginIndex = 0;
var endIndex = s.length - 1;
for (i=0; i<s.length; i++)
{
if (s.charAt(i) == ' ' || s.charAt(i) == ' ')
{
beginIndex++;
}
else
{
break;
}
}
for (i = s.length - 1; i >= 0; i--)
{
if (s.charAt(i) == ' ' || s.charAt(i) == ' ')
{
endIndex--;
}
else
{
break;
}
}
if (endIndex < beginIndex)
{
return "";
}
return s.substring(beginIndex, endIndex + 1);
}
上面这个trim()函数只是将字符串s的前后空格去掉了,而对字符串中间的空格没有受影响。
如果说在字符串中间有多个连续空格,而只想保留其中的一个,可以用下边的cutSpace()函数:
//去除多余的空格,如果有连续空格,只保留第一个
function cutSpace(s)
{
var len = s.length;
var i;
var ch;
var result = "";
i = 0;
while (i < len)
{
ch = s.charAt(i++);
result += ch;
if (ch != ' ')
{
continue;
}
while (i < len && (ch = s.charAt(i)) == ' ')
{
i++;
}
}
return result;
}
可能有人会觉得为什么不把中间的空格都去掉了,一个都不留呢?呵呵,空格存在必然有其存在的道理。空格一般来说就是用来分隔的,多了就浪费空间了,而一个都不留的话,那么就没有分隔了,所有的字、词、句都连一块了。因此,去除空格也应该考虑“过犹不及”。
当然,如果用户真有去掉所有空格的需求,相信你根据上边的cutSpace()函数稍稍改写一下,就能实现你的需要。祝你顺利。
简短的Trim
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)