この質問への回答や他の多くの場所で、javascript の引用符で囲まれていない文字列が表示されます。
例えば:
var re = /\[media id="?(\d+)"?\]/gi;
代わりにすべきではない理由:
var re = '/\[media id="?(\d+)"?\]/gi';
正規表現のある種の特別な処理ですか、それとも任意の文字列をそのように宣言できますか?
この質問への回答や他の多くの場所で、javascript の引用符で囲まれていない文字列が表示されます。
例えば:
var re = /\[media id="?(\d+)"?\]/gi;
代わりにすべきではない理由:
var re = '/\[media id="?(\d+)"?\]/gi';
正規表現のある種の特別な処理ですか、それとも任意の文字列をそのように宣言できますか?
var re = /\[media id="?(\d+)"?\]/gi;
文字列ではなく、正規表現リテラルです。
文字列ではなく、正規表現専用です。
JavaScript では、Regex は組み込み型であり、C# や Java などのパーサーに渡される文字列パターンではないためです。
つまり、 を記述するとvar regex = /pattern/
、JavaScript はそのリテラルを正規表現パターンとして自動的に使用しregex
、型のオブジェクトを作成しますRegExp
。
参照: https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions
正規表現の特別な処理のようなものですか?
はい、正規表現は特別な処理を受けます。MDNが指摘しているように、リテラル用の独自の構文を持つ組み込みのJavaScript正規表現タイプがあります。
または、そのように宣言できる文字列はありますか?
いいえ。正規表現はオブジェクトであり、文字列ではないため、正規表現リテラルを使用して文字列を書き込もうとすると、文字列ではなく正規表現オブジェクトが取得されます。