JavaScript正規表現のUnicode指定チートシート

入門 | 8分 で読める | 2026.06.17

公式ドキュメント

概要

このチートシートでは、JavaScriptの正規表現でUnicode文字を扱う時によく使う範囲指定をまとめます。

JavaScript正規表現では、半角カタカナは \xA1-\xDF ではなく \uFF61-\uFF9F で指定します。

最初に覚える最小セット

目的パターン
ASCII印字可能文字[\x20-\x7E]
ひらがな[\u3040-\u309F]
カタカナ[\u30A0-\u30FF]
半角カタカナ[\uFF61-\uFF9F]
CJK統合漢字の一部[\u4E00-\u9FFF]
ASCII + 半角カタカナ[\x20-\x7E\uFF61-\uFF9F]

ASCII

範囲意味
\x00-\x7FASCII全体
\x20-\x7E印字可能なASCII
A-Z半角大文字英字
a-z半角小文字英字
0-9半角数字
const printableAscii = /^[\x20-\x7E]+$/;

日本語の代表的な範囲

文字種パターン
ひらがな[\u3040-\u309F]
カタカナ[\u30A0-\u30FF]
半角カタカナ[\uFF61-\uFF9F]
漢字の代表範囲[\u4E00-\u9FFF]
const japaneseBasic = /[\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FFF]/;

漢字は範囲が広く、すべてを単純な1範囲で扱い切れるわけではありません。厳密な処理ではUnicode仕様やライブラリを確認します。

半角扱いの例

ASCII印字可能文字と半角カタカナだけを許可する例です。

const halfwidthOnly = /^[\x20-\x7E\uFF61-\uFF9F]+$/;

console.log(halfwidthOnly.test("ABC123")); // true
console.log(halfwidthOnly.test("アイウ")); // true
console.log(halfwidthOnly.test("アイウ")); // false

半角以外を含むかを見る場合:

const hasNonHalfwidth = /[^\x20-\x7E\uFF61-\uFF9F]/;

Unicodeプロパティエスケープ

JavaScriptでは、u フラグとUnicodeプロパティエスケープを使える環境があります。

目的パターン
文字全般\p{Letter}
数字\p{Number}
ひらがな\p{Script=Hiragana}
カタカナ\p{Script=Katakana}
漢字\p{Script=Han}
const hasHiragana = /\p{Script=Hiragana}/u;

console.log(hasHiragana.test("こんにちは")); // true

Unicodeプロパティエスケープを使う時は、原則として u フラグを付けます。

よくある間違い

間違い理由
[\xA1-\xDF] を半角カタカナとして使うJavaScriptではU+00A1〜U+00DFです
[^\\x01-\\x7E] を万能な全角判定にする半角カタカナや制御文字の扱いが曖昧です
漢字を \u4E00-\u9FAF だけで済ませる漢字範囲はより広いです
u フラグなしで高度なUnicode処理をするサロゲートペアで崩れる場合があります

まとめ

JavaScript正規表現でUnicodeを扱う時は、ASCII、ひらがな、カタカナ、半角カタカナの範囲を分けて指定します。半角カタカナは \uFF61-\uFF9F、Unicodeプロパティエスケープには u フラグを使います。

参考リソース

← 一覧に戻る
PR
PR
PR
PR