0

我提出了一些服务器请求,服务器用一个字符串回复我,该字符串前面有很多空格。字符串是 USERNAME EXIST

我知道如何使用它:

String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');};

String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');};

但第一个第一个回答我 USERNAMEEXISTS,第二个回答我“USERNAME EXIST”(字符串前面有一个空格)。有没有办法杀死字符串前后的所有空格?

4

2 回答 2

1

用于^匹配字符串的开头并$匹配正则表达式中的结尾:

String.prototype.killWhiteSpace = function() {
    return this.replace(/^\s*|\s*$/g, '');
};

通常剥离空白被称为修剪,并且已经在现代浏览器中本地实现。所以你可能想用这个:

String.prototype.trim = String.prototype.trim || 
  function() {
      return this.replace(/^\s*|\s*$/g, '');
  };

如果它不存在,它将创建一个用于修剪的 shim ,否则它将保留本机实现(这要快得多)。

于 2012-07-31T23:24:04.490 回答
0

字符串修剪是一个有趣的主题。一些浏览器可以比其他浏览器更好地优化某些正则表达式。这是一篇好文章:http: //blog.stevenlevithan.com/archives/faster-trim-javascript

我通常使用那篇文章中的第一种方法:

String.prototype.killWhiteSpace = function() {
  return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};

请注意,本文(和此解决方案)侧重于性能。这对您来说可能重要也可能不重要,这里的其他答案肯定符合要求。

于 2012-07-31T23:22:05.433 回答