【问题标题】:Javascript - kill white space in front of stringJavascript - 杀死字符串前面的空格
【发布时间】:2012-07-31 23:19:15
【问题描述】:

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

我知道怎么用这个:

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

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

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

【问题讨论】:

标签: javascript string space


【解决方案1】:

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

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

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

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

如果 trim 尚不存在,它将为 trim 创建一个 shim,否则它将保留本机实现(速度更快)。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      • 2013-10-18
      相关资源
      最近更新 更多