一、去掉字符串前后空格
1、js写法
A、扩充string对象内置方法
/* *使用了两次正则替换,速度惊人,base2类库使用这种实现 *调用方法如下 *str.trimStrSeSpace() */ String.prototype.trimStrSeSpace=function(){ return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); } console.log(' je suis camille666 '.trimStrSeSpace());
/* *比方法1稍慢,因为假设至少存在一个空白字符,Prototype.js使用这种实现 *调用方法如下 *str.trimStrSeSpace1() */ String.prototype.trimStrSeSpace1=function(){ return this.replace(/^\s+/, '').replace(/\s+$/, ''); } console.log(' je suis camille666 '.trimStrSeSpace1());
/* *比方法1,2稍慢 *调用方法如下 *str.trimStrSeSpace2() */ String.prototype.trimStrSeSpace2=function(){ return this.substring(Math.max(this.search(/\S/), 0),this.search(/\S\s*$/) + 1); } console.log(' je suis camille666 '.trimStrSeSpace2());
/* *jquery类库 *调用方法如下 *str.trimStrSeSpace3() */ String.prototype.trimStrSeSpace3=function(){ return this.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,''); } console.log(' je suis camille666 '.trimStrSeSpace3());
/* *mootools类库 *调用方法如下 *str.trimStrSeSpace4() */ String.prototype.trimStrSeSpace4=function(){ return this.replace(/^(\s|\xA0)+|(\s|\xA0)+$/g, ''); } console.log(' je suis camille666 '.trimStrSeSpace4());
/* *调用方法如下 *str.trimStrSeSpace5() */ String.prototype.trimStrSeSpace5=function(){ var str = this; str = str.match(/\S+(?:\s+\S+)*/); return str ? str[0] : ''; } console.log(' je suis camille666 '.trimStrSeSpace5());
/* *普通的原生字符串截取方法是远胜于正则替换。 *把可能的空白符全部列出来,在第一次遍历中砍掉前面的空白,第二次砍掉后面的空白。 *全过程只用了indexOf与substring这个专门为处理字符串而生的原生方法,没有使用到正则。 *速度快得惊人,估计直逼上内部的二进制实现,并且在IE与火狐都有良好的表现,速度都是零毫秒级别的。 *调用方法如下 *str.trimStrSeSpace6() */ String.prototype.trimStrSeSpace6=function(){ var str = this, whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000'; for (var i = 0,len = str.length; i < len; i++) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.substring(i); break; } } for (i = str.length - 1; i >= 0; i--) { if (whitespace.indexOf(str.charAt(i)) === -1) { str = str.substring(0, i + 1); break; } } return whitespace.indexOf(str.charAt(0)) === -1 ? str : ''; } console.log(' je suis camille666 '.trimStrSeSpace6());
/* *调用方法如下 *str.trimStrSeSpace7() */ String.prototype.trimStrSeSpace7=function(){ var str = this, str = str.replace(/^\s+/, ''); for (var i = str.length - 1; i >= 0; i--) { if (/\S/.test(str.charAt(i))) { str = str.substring(0, i + 1); break; } } return str; } console.log(' je suis camille666 '.trimStrSeSpace7());
/* *调用方法如下 *str.trimStrSeSpace8() */ String.prototype.trimStrSeSpace8=function(){ var str = this, str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length; while (ws.test(str.charAt(--i))); return str.slice(0, i + 1); } console.log(' je suis camille666 '.trimStrSeSpace8());
/* *调用方法如下 *str.trimStrSeSpace9() */ String.prototype.trimStrSeSpace9=function(){ return this.replace(/(^\s*)|(\s*$)/g, ""); } console.log(' je suis camille666 '.trimStrSeSpace9());
B、自定义函数法
/* *调用方法如下 *trimStrSeSpace10(str) */ function trimStrSeSpace10(str){ return str.replace(/(^\s*)|(\s*$)/g, ""); } console.log(trimStrSeSpace10(' je suis camille666 '));
2、jquery写法
$.trim(' camille666 ');
二、去掉字符串所有空格
1、js写法
A、自定义函数法,1个参数
/* *调用方法如下 *trimStrAllSpace(str) */ function trimStrAllSpace(str){ return str.replace(/\s+/g,''); } console.log(trimStrAllSpace(' je suis camille666 '));
B、自定义函数法,1个参数
/* *调用方法如下 *trimStrAllSpace1(str) */ function trimStrAllSpace1(str){ return str.replace(/\s/ig,''); } console.log(trimStrAllSpace1(' je suis camille666 '));
C、自定义函数法,2个参数
/* *调用方法如下 *trimStrAllSpace2(str,"g") */ function trimStrAllSpace2(str,is_global){ var result = str.replace(/(^\s+)|(\s+$)/g,""); if(is_global.toLowerCase()=="g") { result = result.replace(/\s/g,""); } return result; } console.log(trimStrAllSpace2(' je suis camille666 ',"g"));