去除空格

一、去掉字符串前后空格

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"));

你可能感兴趣的:(去除空格)