次の2つの例は同じことを行います。JavaScript分割機能 - エスケープ文字の使用?
オプション2が見つからないコード例で、オプション1が与えられたのはなぜですか?
オプション1
var pairs = qString.split(/\&/);
オプション2
var pairs = qString.split('&');
次の2つの例は同じことを行います。JavaScript分割機能 - エスケープ文字の使用?
オプション2が見つからないコード例で、オプション1が与えられたのはなぜですか?
オプション1
var pairs = qString.split(/\&/);
オプション2
var pairs = qString.split('&');
第一の例を見るには、普通の文字列上の第二分割しながら、(傾い-爪楊枝を用いて構築(/.../
)構文)regular expressionに分割します。
正規表現は、複雑な文字列の照合を可能にする強力なサブ言語です。この場合、リテラル文字で分割するためのオーバーヘッド(おそらく無視できる)は少し愚かです。それは木造の立方体を作るために一流の建築家を雇うようなものです。
最初の例では、&
文字が間違ってエスケープされています(\
)。これは正規表現では特別ではないためです。正規表現エンジンはそれを正常に処理し、それでも文字通りのように扱います。&
split()
がその関数である '/ \ & /' で前方/後方スラッシュの意義とは何ですか正規表現と同様に文字列パラメータをとることができますが、スラッシュの使用法は正規表現リテラルと呼ばれ、実際には文字列を渡すのではなく正規表現ですオブジェクト。
次のJavaScriptの文は同じです。
var regex = /\&/; // Literal
var regex = new RegExp("\\&"); // Explicit
オプション1は、周囲のスラッシュ(/
)で宣言されているRegEx定数を使用します。
オプション2は文字列を使用します。
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Regular_Expressions