文字クラス

草案
このページは完成していません。

文字クラスは、文字や数字の区別など、文字の種類を区別します。

種類

文字 意味
.

次のいずれかの意味を持ちます。

  • 行末文字 ( \n\r\u2028\u2029 ) を除くあらゆる 1 文字とマッチします。例えば、/.y/ は "my" と "ay" にマッチし、"yes make my day" の "yes" にはマッチしません。
  • 文字セット内では . はその特別な意味を失い、文字通りの "."と一致します。

複数行フラグ (m)  は "." の意味を変えないことに注意してください。そのため、複数行にわたるパターンに一致させるには、(IEの古いバージョン以外なら)文字集合 [^] を使うことで、改行を含む任意の文字に一致します。

ES2018 では s "dotAll" フラグが追加されました。これは行末文字と一致することを可能にします。

\d

あらゆる(アラビア)数字にマッチします。[0-9] に相当します。例えば /\d//[0-9]/ は "B2 is the suite number" の "2" にマッチします。

\D

あらゆる(アラビア)数字以外の文字にマッチします。[^0-9] に相当します。例えば /\D//[^0-9]/ は "B2 is the suite number" の "B" にマッチします。

\w

アンダースコアを含むあらゆる半角英数字(基本ラテンアルファベット)にマッチします。[A-Za-z0-9_] に相当します。例えば /\w/ は、"apple," の 'a' や "$5.28," の "5" や "3D" の "3" にマッチします。

\W

前述以外の文字にマッチします。[^A-Za-z0-9_] に相当します。例えば /\W//[^A-Za-z0-9_]/ は、"50%" の "%" にマッチします。

\s

スペース、タブ、改ページ、改行を含むホワイトスペース文字にマッチします。[ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​-\u200a​\u2028\u2029\u202f\u205f​\u3000\ufeff] に相当します。例えば /\s\w*/"foo bar"" bar" にマッチします。

\S

ホワイトスペース以外の文字にマッチします。[^ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] に相当します。例えば /\S\w*/ は "foo bar" の "foo" にマッチします。

\t タブ (U+0009) にマッチします。
\r 復帰文字 (U+000D) にマッチします。
\n 改行文字 (U+000A) にマッチします。
\v 垂直タブ (U+000B) にマッチします。
\f 改ページ (U+000C) にマッチします。
[\b] 後退文字(バックスペース、U+0008)にマッチします。単語境界文字 (\b) については境界を見てください。
\0 NULL 文字 (U+0000) にマッチします。この後ろに他の数字を続けてはいけません。\0 の後に(0 から 7 までの)数字が続くと 8 進数のエスケープシーケンスとなるからです。
\cX

X には A から Z のうち 1 文字が入ります。文字列中の制御文字にマッチします。例えば /\cM/ は文字列中の control-M (U+000D) にマッチします。

\xhh hh(2 桁の 16 進数)コードからなる文字にマッチします。
\uhhhh hhhh(4 桁の 16 進数)の値からなる UTF-16 コードユニットにマッチします。
\u{hhhh} または \u{hhhhh}

(u フラグがセットされた時のみ) U+hhhh または U+hhhhh (16 進数) Unicode 値からなる文字にマッチします。

\

次の文字を特別に扱うこと、「エスケープ」することを示します。 それは 2 つのうち 1 つを振る舞います。

  • 通常文字の前に付けられた場合、次の文字が特別なもので、文字通りには評価されないことを示します。例えば b は文字 "b" にマッチします。しかし "b" の前にバックスラッシュを置いて \b とすると、単語区切りを意味するようになります。
  • 特殊文字の前に付けられた場合、次の文字が特別なものでなく、文字通りに評価されることを表します。例えば、"*" は、先行文字の0回以上の出現が一致する必要があることを意味する特殊文字です。例えば、/a*/ は 0 回以上の "a" とマッチします。文字通りの * にマッチさせるには、その直前にバックスラッシュを入れます。例えば、/a\*/"a*" とマッチします。

この文字を文字通りにマッチさせるには、それ自身をエスケープします。つまり、 /\\/ を使って \ を検索します。

 

仕様

仕様書 策定状況 コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義です。JavaScript 1.1 で実装されました。

ブラウザサポート

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
Unicode property escapes (\p{...})Chrome 完全対応 64Edge ? Firefox 未対応 なしIE ? Opera 完全対応 51Safari ? WebView Android 完全対応 64Chrome Android 完全対応 64Firefox Android 未対応 なしOpera Android 完全対応 47Safari iOS ? Samsung Internet Android 完全対応 ありnodejs 完全対応 10.0.0
完全対応 10.0.0
完全対応 8.3.0
無効
無効 From version 8.3.0: this feature is behind the --harmony runtime flag.

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
ユーザーが明示的にこの機能を有効にしなければなりません。
ユーザーが明示的にこの機能を有効にしなければなりません。

関連情報