2016-07-25 6 views
1

alert(typeof(/\s/))

をへ

alert($.type(/\s/))
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0123:再び、私は変更を加えたチェック

今、regexpがあります。

私の質問:なぜtypeof(/\s/)stringまたはregexpの代わりにobjectがjavascriptに含まれていますか?

答えて

2

正規表現は、Dateのようにオブジェクトなので「オブジェクト」です。 正規表現は、文字のパターンを記述するオブジェクトです。

あなたはobjecttypeofを使用する場合は、"object"

他のいくつかの例を取得:引数がプリミティブ値または標準のインスタンスのいずれかである場合$.type

typeof []; // "object" 
typeof null; // "object" 
typeof /regex/ // "object" 
typeof new String(""); // "object" 

を組み込みのECMAScriptオブジェクトの場合は、[[Class]]内部プロパティを使用して型を判別します。

例:

jQuery.type(/test/) === "regexp" 

Documentation on $.type

+0

あなたが意味: 'それが正しいexactly'ではありませんので、任意の変数の型をチェックするtypeofを使用しないでください、ないではないあなたは? –

+0

@HappyCodingつまり、文字列のようなものを比較し、その正規表現が '$ .type'を使用しているかどうかをチェックしたいと思うのです。明らかに 'typeof'は他のものと一緒に使うことができます。あなたのニーズに合ったものを使用してください。 –

+0

多くの感謝! '$ .test'の代わりに' $ .type'リンクを編集することができます:) –

関連する問題