A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp/RegExp below:

RegExp() コンストラクター - JavaScript | MDN

RegExp() コンストラクター

Baseline Widely available

RegExp() コンストラクターは RegExp オブジェクトを生成します。

正規表現について詳しく知りたい方は JavaScript ガイド の 正規表現 を参照してください。

試してみましょう
const regex1 = /\w+/;
const regex2 = new RegExp("\\w+");

console.log(regex1);
// Expected output: /\w+/

console.log(regex2);
// Expected output: /\w+/

console.log(regex1 === regex2);
// Expected output: false
構文
new RegExp(pattern)
new RegExp(pattern, flags)
RegExp(pattern)
RegExp(pattern, flags)

メモ: RegExp() は new があってもなくても呼び出すことができますが、効果が異なることがあります。返値を参照してください。

引数
pattern

正規表現のテキストです。他の RegExp オブジェクトであっても構いません。

flags 省略可

指定された場合、 flags は追加するフラグを含む文字列です。または、RegExp オブジェクトが pattern に提供された場合は、flags の文字列はそのオブジェクトのフラグをすべて置き換えます(そして lastIndex は 0 にリセットされます)。

flags は以下の値を任意の組み合わせを含んだ文字列を指定することができます。

d (indices)

部分文字列の一致にインデックスを生成します。

g (global)

最初に一致した後で停止せずに、一致するものをすべて探します。

i (ignore case)

照合時に、大文字小文字の違いを無視します。

m (multiline)

先頭および末尾を示す文字(^ と $)が、複数の行にまたがって機能します。すなわち、入力文字列全体の先頭および末尾だけでなく、それぞれの(\n や \r で区切られた)行の先頭および末尾に一致します。

s (dotAll)

. が改行文字に一致できるようにします。

u (unicode)

pattern を Unicode コードポイントの並びとして扱います。

v (unicodeSets)

文字列のプロパティだけでなく、文字クラスでも集合表記を可能にする u フラグのアップグレード版です。

y (sticky)

対象文字列中の正規表現の lastIndex プロパティによって示された位置からのみ照合するようになります。それより後の位置からの照合は試みません。

返値

RegExp(pattern) は以下のすべてに該当すると、pattern を直接返します。

その他のすべての場合においては、RegExp() を呼び出す際に new を使用しても使用しなくても、新しい RegExp オブジェクトが作成されます。pattern が正規表現の場合、新しいオブジェクトのソースは pattern.source になります。それ以外の場合は、pattern は文字列に変換されます。flags 引数が undefined でない場合、新しいオブジェクトの flags は引数の値となり、そうでない場合、その flags は pattern.flags になります(pattern が正規表現の場合)。

例外
SyntaxError

以下のいずれかが成立すると発生します。

例 リテラル記法とコンストラクター

RegExp オブジェクトを生成するのにリテラル記法とコンストラクターの 2 つの方法があります。

以下の 3 つの式は、同じ正規表現を生成するものです。

/ab+c/i;
new RegExp(/ab+c/, "i"); // リテラル表記
new RegExp("ab+c", "i"); // コンストラクター

正規表現は、使用する前にコンパイルする必要があります。この処理により、より効率的に照合を行うことができます。コンパイルして RegExp オブジェクトを取得するには 2 つの方法があります。

リテラル記法を使用すると、式が評価されるときに正規表現のコンパイルが行われた結果になります。一方、RegExp オブジェクトのコンストラクターである new RegExp('ab+c') は、正規表現を実行時にコンパイルする結果になります。

動的な入力から正規表現を構築したい場合は、文字列を最初の引数として RegExp() コンストラクターを使用してください。

動的な入力から正規表現を構築
const breakfasts = ["bacon", "eggs", "oatmeal", "toast", "cereal"];
const order = "Let me get some bacon and eggs, please";

order.match(new RegExp(`\\b(${breakfasts.join("|")})\\b`, "g"));
// Returns ['bacon', 'eggs']
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4