代码之家  ›  专栏  ›  技术社区  ›  jamesmhaley

javascript中的左修剪

  •  9
  • jamesmhaley  · 技术社区  · 15 年前

    有很多脚本可以在javascript中修剪一个字符串,但是没有一个脚本可以如何保留修剪字符串。

    这是我用来修剪的:

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

    但是我想稍微改变一下,创建一个新的函数lefttrim,它只删除前导空格。我的正则表达式相当有限,所以任何帮助都非常感谢。

    干杯

    4 回复  |  直到 15 年前
        1
  •  20
  •   Jonathan Fingland    15 年前

    用途:

    String.prototype.leftTrim = function() {
        return this.replace(/^\s+/,"");
    }
    

    在regex中:

    • ^表示“从字符串开始”
    • \ s表示空白字符类
    • +表示一个或多个(贪婪)

    所以…

    • ^\ S+表示“从类的开头开始一个或多个连续的空白字符”

    注: g regex末尾的标志是不必要的,因为锚(^和$)显式定义了将匹配的内容。不能有多个匹配项。

    https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp 有关javascript中regex语法的详细信息

        2
  •  4
  •   Community Reversed Engineer    7 年前

    我已经回答了 a similar question 就在几分钟前,但这是我对你问题的解答。

    String.prototype.trimLeft = String.prototype.trimLeft || function () {
        var start = -1;
    
        while( this.charCodeAt(++start) < 33 );
    
        return this.slice( start, this.length);
    };
    

    上述解决方案基于 Ariel Flesler fast trim function 事实上,火狐3.5及更高版本内置了 trimLeft 方法在 String 对象。

        3
  •  1
  •   igor    15 年前
    String.prototype.leftTrim = function() {
            return this.replace(/^\s+/,"");
    }
    
        4
  •  1
  •   Jesper    15 年前

    很简单,regex需要一个小的改变:

    String.prototype.leftTrim = function() {
        return this.replace(/^\s+/,"");
    }
    

    参见: