86 of 264 menu

execメソッド

メソッドexecは、指定された正規表現に基づいて文字列を検索します。結果として、見つかった部分文字列とそのキャプチャグループ(サブマッチ)が返されます。このメソッドを続けて呼び出すと、前回見つかった部分文字列の終わりの位置から検索を開始します。一致するものが見つからない場合はnullが返されます。

構文

正規表現.test(文字列);

メソッドの動作を確認してみましょう:

let str = '12 34 56'; let reg = /\d+/g; let res1 = reg.exec(str); console.log(res1); let res2 = reg.exec(str); console.log(res2); let res3 = reg.exec(str); console.log(res3); let res4 = reg.exec(str); console.log(res4);

コードの実行結果:

[12] [34] [56] null

ループ内でメソッドを使用してみます:

let str = '12 34 56'; let reg = /\d+/g; let res; while (res = reg.exec(str)) { console.log(res); }

コードの実行結果:

[12] [34] [56]

見つかった一致をキャプチャグループに分解できます:

let str = '12 34 56'; let reg = /(\d)(\d)/g; let res; while (res = reg.exec(str)) { console.log(res); }

コードの実行結果:

[12, 1, 2] [34, 3, 4] [56, 5, 6]

プロパティlastIndexを使用して、検索を開始する位置を指定できます:

let str = '12 34 56'; let reg = /\d+/g; reg.lastIndex = 2; let res1 = reg.exec(str) console.log(res1); let res2 = reg.exec(str) console.log(res2);

コードの実行結果:

[34] [56]

修飾子yを使用して、検索開始位置を固定できます:

let str = '12 34 56'; let reg = /\d+/y; reg.lastIndex = 2; let res1 = reg.exec(str) console.log(res1); let res2 = reg.exec(str) console.log(res2);

コードの実行結果:

null [12]

関連項目

  • 文字列を検査するメソッドtest
  • 文字列内で一致を検索するメソッドmatch
  • 文字列内のすべての一致を検索するメソッドmatchAll
  • 検索と置換を実行するメソッドreplace
  • 検索を実行するメソッドsearch
  • 文字列を分割するメソッドsplit
日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否