0

次のコードは何をしますか?行ごとに説明してください。

 x="c_name";
 y=x.replace(/^\s+|\s+$/g,"");

x.replace(/ ^ \ s /)のみが指定された場合、replaceメソッドは、文字列の先頭にあるスペース文字を置き換えますが、これらの追加引数は何を意味しますか?「|」は 置換方法で「または」を意味しますか?行ごとに説明してください

4

3 に答える 3

0
 y=x.replace(/^\s+|\s+$/g,"");

次のことを意味します。

  • ( |) :
    • 文字列 ( )の先頭にある1 つ以上の ( +)空白に一致^\s+
    • または文字列の末尾にある 1 つ以上の空白文字 ( \s+$)

それらを何も置き換えません。

フラグは、最初のg一致だけでなく、すべての一致を置き換えることを意味します。

つまり、文字列の先頭と末尾の空白を削除します。

于 2012-12-21T10:32:39.210 に答える
0

文字列の先頭または末尾にある任意の数のスペースを削除します。

それは次のように読むことができます

  • ^\s+: 先頭にいくつかのスペース
  • |: また
  • \s+$: 最後にいくつかのスペース
  • g: それらすべて

正規表現に関する MDN ドキュメントを参照してください。

一部の古いブラウザー (IE8-) にはトリム機能がないため、おそらくコード内にあります。

于 2012-12-21T10:32:43.227 に答える
0

MDN ドキュメントから:

^- 入力の先頭に一致します。
\s- スペース、タブ、フォーム フィード、ライン フィード、およびその他の Unicode スペースを含む単一の空白文字に一致します。
x|y- x または y のいずれかに一致します。
+- 前の項目に 1 回以上一致します。
$- 入力の末尾に一致します。

したがって、基本的には古いブラウザ用のtrim()関数です。

于 2012-12-21T10:35:53.060 に答える