web-dev-qa-db-ja.com

javascriptでトリミングしますか?このコードは何をしているのですか?

存在しないJavaScriptのトリム関数を探していましたが、グーグルのいくつかのコードは次の使用を提案しています。

_function trimStr(str) {
  return str.replace(/^\s+|\s+$/g, '');
}
_

str.replace(/^\s+|\s+$/g, '')がどのように機能するか知りたいです。これが何らかの正規表現であることは理解していますが、それが何をしているのかわかりません。

23
sushil bharwani

/^\s+|\s+$/gは、文字列の最初または最後から空白を検索します。式は、^\s+(OR)で区切られた\s+$|の2つの部分に分割できます。最初の部分は文字列の先頭(^)から始まり、可能な限り多くの空白文字(\s+)を含みます。 2番目の部分も同じですが、逆に、最後にドル記号($)を使用します。

平易な英語では、正規表現は次のようになります。

文字列の最初からできるだけ多くの空白文字を検索するか、最後からできるだけ多くの空白文字を検索します。

\sはスペース、タブ、改行に一致することに注意してください。

最後の/g部分はグローバル検索を有効にし、複数の置換を可能にします(たとえば、文字列の最初だけでなく最後も)。

36
Tatu Ulmanen

^は文字列の先頭であり、$は終わりです。 \sは空白文字を意味します(JavaScriptでは、具体的にはタブ、垂直タブ、フォームフィード、スペース、非区切りスペース、バイトオーダーマーク、Unicodeスペース区切り文字(カテゴリZ)、改行、キャリッジリターン、行区切り記号、または段落を意味します区切り文字)、および+は1つ以上を意味します。 |は交替であり、2つの可能性から選択します。 gはグローバルフラグです。したがって、正規表現は、最初、1つ以上の空白、または1つ以上の空白、そして最後を意味します。次に、すべての一致を(グローバルであるため)空の文字列に置き換えます。

あなたはこれに興味があるかもしれません ブログ投稿 、おそらくあなたが必要とするよりも詳細に分析します:)さまざまなトリム機能の長所と短所。

7