Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 標準組み込みオブジェクト
  5. RegExp
  6. unicode

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

RegExp.prototype.unicode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2016年9月⁩.

unicodeRegExp インスタンスのアクセサープロパティで、この正規表現にu フラグが使用されているかどうかを返します。

試してみましょう

const regex1 = /\u{61}/;const regex2 = /\u{61}/u;console.log(regex1.unicode);// 予想される結果: falseconsole.log(regex2.unicode);// 予想される結果: true

解説

RegExp.prototype.unicode の値はtrue ならばu フラグが使用されていることを示し、そうでなければfalse となります。u フラグは Unicode に関連する様々な機能を有効にします。 "u" フラグを使用すると、次のようになります。

  • Unicode コードポイントエスケープ ( \u{xxxx}, \p{UnicodePropertyValue}) は、ID エスケープの代わりにそのように解釈されます。例えば、/\u{61}/u"a" に一致しますが、/\u{61}/u フラグなし)は"u".repeat(61) に一致します。\uu 1 文字と同等になるからです。
  • サロゲートペアは 2 つの別々の文字ではなく、全体の文字として解釈されます。例えば/[😄]/u"😄" にのみ一致し、"\ud83d" には一致しません。
  • lastIndex が自動的に進む場合(exec() を呼び出した場合など)、Unicode 正規表現は UTF-16 コード単位ではなく Unicode コードポイント単位で進みます。

構文の間違いを防ぐために、構文解析の動作を変更したものが他にもあります(正規表現構文の厳格モードに似ています)。これらの構文はすべて非推奨であり、ウェブの互換性のためだけに残されているものですので、頼らないでください。

unicode の設定アクセサーはundefined です。このプロパティを直接変更することはできません。

Unicode 対応モード

Unicode 対応モードと言う言葉を使うときは、u またはv のどちらかのフラグがついた正規表現を指し、この場合は正規表現が Unicode に関連した機能(Unicode 文字クラスエスケープなど)が利用できるようになり、もっと厳格化した構文ルールになります。uv は同じ正規表現を互換性のない方法で解釈するため、両方のフラグを使用するとSyntaxError になります。

同様に、正規表現がu フラグもv フラグも持たない場合、Unicode 非対応モードとなります。この場合、正規表現は UTF-16 コード単位の並びとして解釈され、たくさんの古い構文が構文エラーにならなくなります。

unicode プロパティの使用

js
const regex = /\u{61}/u;console.log(regex.unicode); // true

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-get-regexp.prototype.unicode

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp