JavaScript 正規表現パターン 文字クラス
[abc] マッチする文字集合
a, b, c のいずれかの文字の意味になります。複数記述可能。
ハイフン - で範囲を表すこともできます。 順序はアルファベットや数字の順序通りです。 例えば [a-c] 等とすることで「a から c までの文字」の意味になります。
[a-zA-Z0-9] とすれば、「a から z または A から Z または 0 から 9 までの文字」の意味です。
[^abc] マッチしない文字集合
カレット ^ をつけることで、 a, b, c を除く任意の文字の意味になります。
アルファベットや数字の順序通り [^a-c] 等とすることで「a から c 以外の文字」の意味になります。
const r = /ABC[^0-9]/
const s = 'ABCD'
const s2 = 'ABC5'
console.log(r.test(s)) // true
console.log(r.test(s2)) // false
. 任意の文字
任意の文字一文字を表します。
const r = /ABC.XYZ/
const s1 = 'ABC!XYZ'
const s2 = 'ABCXYZ'
console.log(r.test(s1)) // true
console.log(r.test(s2)) // false
デフォルトで改行文字などの行末文字 (line terminator) にはマッチしません。 s オプションを指定すると . は行末文字にもマッチします。
行末文字には \n、 \r、 \u2028、 \u2029 があります。
const s = `ABC
XYZ`
const r1 = /ABC.XYZ/
console.log(r1.test(s)) // false
const r2 = /ABC.XYZ/s
console.log(r2.test(s)) // true
ドット文字.そのものを意味するには、エスケープして \. とするか、[.] とします。
\w アルファベット、数字、アンダースコア
\wはアルファベット、数字及びアンダースコアにマッチします。
文字集合で書けば \w は [a-zA-Z0-9_] と同様です。
const s = 'AB_CD'
const r = /AB\w{3}/
console.log(r.test(s)) // true
\W アルファベット、数字、アンダースコア以外の文字
\W はアルファベット、数字、アンダースコア以外にマッチします。
文字集合で書けば \W は [^a-zA-Z0-9_] と同様です。
\s 空白文字
\s はスペース、タブ、改行文字といった空白文字にマッチします。
const r = /\s/
// [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
\S 空白文字以外の文字
\S は \s にマッチしない任意の文字にマッチします。
\w に対して、大文字の \W が「\w 以外の文字」の意味になるように、 \s に対して、大文字の \S は「\s以外の文字」の意味になります。
\d ASCII の数字
\d は ASCII の数字にマッチします。 [0-9] と同様の意味になります。
\D ASCII の数字以外の文字
\D は ASCII の数字以外の文字にマッチします。 [^0-9] と同様の意味になります。