17

JavaScript で文字列をトリムするスクリプトはたくさんありますが、文字列を左にトリムする方法はありません。

これは私がトリミングに使用するものです:

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

しかし、これを少し変更して、先頭のスペースのみを削除する leftTrim という新しい関数を作成したいと思います。私の正規表現はかなり限られているため、どんな助けも大歓迎です。

乾杯

4

7 に答える 7

30

使用する:

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

正規表現では:

  • ^ は「文字列の先頭から」を意味します
  • \s は空白文字クラスを意味します
  • + は 1 つ以上を意味します (貪欲)

それで....

  • ^\s+ は、「クラスの先頭から連続する 1 つ以上の空白文字」を意味します。

注:gアンカー (^ と $) が一致するものを明示的に定義するため、正規表現の最後のフラグは不要です。複数の一致はあり得ません。

JavaScript の正規表現構文の詳細については、https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExpを参照してください。

于 2009-10-20T11:10:13.927 に答える
5

少し前に同様の質問に回答しましたが、これがあなたの質問に対する私の解決策です。

String.prototype.trimLeft = String.prototype.trimLeft || function () {
    var start = -1;

    while( this.charCodeAt(++start) < 33 );

    return this.slice( start, this.length);
};

上記のソリューションは、Ariel Flesler の高速トリム機能と、Firefox 3.5trimLeft以降にはオブジェクトに組み込みのメソッドがあるという事実に基づいていStringます。

于 2009-10-20T11:19:50.430 に答える
2
String.prototype.leftTrim = function() {
        return this.replace(/^\s+/,"");
}
于 2009-10-20T11:11:10.893 に答える
2

非常に単純です。正規表現には小さな変更が必要です。

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

以下も参照してください。

于 2009-10-20T11:12:31.147 に答える