1

この質問への回答や他の多くの場所で、javascript の引用符で囲まれていない文字列が表示されます。

例えば:

var re = /\[media id="?(\d+)"?\]/gi;

代わりにすべきではない理由:

var re = '/\[media id="?(\d+)"?\]/gi';

正規表現のある種の特別な処理ですか、それとも任意の文字列をそのように宣言できますか?

4

4 に答える 4

3
var re = /\[media id="?(\d+)"?\]/gi;

文字列ではなく、正規表現リテラルです。

于 2012-08-03T07:55:37.943 に答える
2

文字列ではなく、正規表現専用です。

于 2012-08-03T07:56:04.243 に答える
2

JavaScript では、Regex は組み込み型であり、C# や Java などのパーサーに渡される文字列パターンではないためです。

つまり、 を記述するとvar regex = /pattern/、JavaScript はそのリテラルを正規表現パターンとして自動的に使用しregex、型のオブジェクトを作成しますRegExp

参照: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

于 2012-08-03T07:57:19.177 に答える
1

正規表現の特別な処理のようなものですか?

はい、正規表現は特別な処理を受けます。MDNが指摘しているように、リテラル用の独自の構文を持つ組み込みのJavaScript正規表現タイプがあります。

または、そのように宣言できる文字列はありますか?

いいえ。正規表現はオブジェクトであり、文字列ではないため、正規表現リテラルを使用して文字列を書き込もうとすると、文字列ではなく正規表現オブジェクトが取得されます。

于 2012-08-03T07:58:37.610 に答える