//去掉字符串两边空格的函数
//函数参数说明: sInputString 为输入字符串,iType为类型,分别为 0 - 去除前后空格; 1 - 去前导空格; 2 - 去尾部空格
//这是客户端的脚本代码。
<SCRIPT language="JavaScript">
function cTrim(sInputString,iType)
{
var sTmpStr = ' '
var i = -1
if(iType == 0 || iType == 1)
{
while(sTmpStr == ' ')
{
++i
sTmpStr = sInputString.substr(i,1)
}
sInputString = sInputString.substring(i)
}
if(iType == 0 || iType == 2)
{
sTmpStr = ' '
i = sInputString.length
while(sTmpStr == ' ')
{
--i
sTmpStr = sInputString.substr(i,1)
}
sInputString = sInputString.substring(0,i+1)
}
return sInputString
}
</script>
使用方法:
str变量存储的是要进行去空格的字符串
去前后空格:str=cTrim(str,0) //str此时得到的字符串就是原来字符串去了前后连续空格后的字符串
去前导空格:str=cTrim(str,1)
去后导空格:str=cTrim(str,2)
函数的实现原理简述:
sInputString是要进行去空格的字符串,使用一个变量(sTmpStr)来存储空格字符,一个变量(i)存储一个正负数的位置标志。
去前导空格。
i与sTmpStr初始化(var sTmpStr = ' ';var i = -1),判断sTmpStr为空格时,i+1并给sTmpStr取sInputString的i位置的字符(sInputString.substr(i,1))。上面过程循环直到sTmpStr不为空格,此时i表示sInputString从i位置开始之后的字符开始不是空格,取sInputString第i位置开始之后的所有字符(sInputString.substring(i)),此时字符串sInputString的前边的所有连续的空格就被剪去了。
去后导空格。
这是与前面完全相同的过程!sTmpStr初始化(var sTmpStr = ' '),i取字符串sInputString长度值(sInputString.length),判断sTmpStr为空格时,i-1并给sTmpStr取sInputString的i位置的字符(sInputString.substr(i,1))。上面过程循环直到sTmpStr不为空格,此时i表示sInputString从i位置开始前面的字符开始不是空格,取sInputString第i位置开始前面的所有字符(sInputString.substring(0,i+1)),此时字符串sInputString的后边的所有连续的空格就被剪去了。
其实去前导空格无非就是判断字符串第一个字符是不是空格,是就判断第二个,以此循环下去,直到不是空格为止,然后取不是空格字符开始后面的所有字符。而去后导空格呢,则是判断最后一个字符是不是空格,是就判断倒数第二个,以此循环下去,直到不是空格为止,得到后面有多少个连续空格,然后取前面相应长度字符,不要后面连续的空格即可。