JavaScript 正規表現 出現回数の記述

{n} 連続n回の出現

{n} で「連続n回の出現」を意味します。

例えば、「0から9までの数字が連続して3回出現」という意味のパターンは \d{3} と書けます。

const r = /\d{3}/
console.log(r.test('123'))   // true
console.log(r.test('55'))    // false
console.log(r.test('98765')) // true

注意する点としては、上記の三番目の例です。 '98765' という「数字5個」に \d{3} がマッチしています。 文字列全体では数字5個ですが、 '987' の部分など「数字3個」の部分があるのでマッチします。

文字列全体で「数字3個」にマッチするためには、パターンを ^\d{3}$ とします。

const r = /^\d{3}$/
console.log(r.test('123'))   // true
console.log(r.test('98765')) // false

詳しくは「JavaScript 正規表現 マッチ場所の指定」をご覧ください。

{n,m} n回からm回までの出現

{n,m} で「n回からm回までの出現」を意味します。

const r = /Go{2,5}gle/
console.log(r.test('Gogle'))      // false
console.log(r.test('Google'))     // true
console.log(r.test('Gooooogle'))  // true
console.log(r.test('Goooooogle')) // false

{n,} n回以上の出現

{n,} で「n回以上の出現」を意味します。

const r = /Go{2,}gle/
console.log(r.test('Gogle'))      // false
console.log(r.test('Google'))     // true
console.log(r.test('Gooooogle'))  // true
console.log(r.test('Goooooogle')) // true

? 0回か1回の出現

? で「0回か1回の出現」を意味します。言い換えると「?の箇所はあってもなくても良い」と言えます。

const r = /(https:\/\/)?www\.apple\.com/
console.log(r.test('https://www.apple.com')) // true
console.log(r.test('www.apple.com')) // true

パターン中の / 文字はバックスラッシュ \ でエスケープする必要があります。 また、パターン中のドット . は任意の文字を表すので、リテラルの . をパターンに含めるには、エスケープして \. とするか [.]とします。

* 0回以上の出現

* は「0回以上の出現」を意味します。

const r = /go*gle/
console.log(r.test('ggle')) // true
console.log(r.test('goooooogle')) // true

+ 1回以上の出現

* は「1回以上の出現」を意味します。

const r = /go+gle/
console.log(r.test('ggle')) // false
console.log(r.test('goooooogle')) // true

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 JavaScript 入門