功能: 1)去除字符串前后所有空格
2)去除字符串中所有空格(包括中间空格,需要设置第2个参数为:g)
1 2 3 4 5 6 7 8 | 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; } |
去掉字符串两边空格的函函数参数说明: sInputString 为输入字符串,iType为类型,分别为 0 – 去除前后空格; 1 – 去前导空格; 2 – 去尾部空格
这是客户端的脚本代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <SCRIPT language="text/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的后边的所有连续的空格就被剪去了。
其实去前导空格无非就是判断字符串第一个字符是不是空格,是就判断第二个,以此循环下去,直到不是空格为止,然后取不是空格字符开始后面的所有字符。而去后导空格呢,则是判断最后一个字符是不是空格,是就判断倒数第二个,以此循环下去,直到不是空格为止,得到后面有多少个连续空格,然后取前面相应长度字符,不要后面连续的空格即可。