0

Douglas Crockford による JavaScript プログラミング言語シリーズを読んでいて、彼のトリム関数で次の式に出くわしました。

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

私はそれが何をするかを理解していますが、世界ではどのように機能しますか?

4

1 に答える 1

1

正規表現をステップ実行できるexpressoなどのツールを取得する必要があります...

^\s*- 行または文字列の先頭の空白、任意の回数の繰り返し

(\S*(\s+\S+)*)- あなたの例ではグループ番号 "$1" をキャプチャします。

\S*(\s+\S+)*- 空白以外、任意の数の繰り返し

(\s+\S+)*- 別のキャプチャ グループ。1 つ以上の繰り返しがある空白と、1 つ以上の繰り返しがある空白以外のものを探します。

\s*$- 行または文字列の末尾にある任意の数の空白。

Expresso での表示は...

エスプレッソのスクリーンショット

于 2013-08-21T19:01:49.420 に答える