JavaScriptでひらがな・カタカタ・漢字をチェックする方法まとめ

入力欄でひらがなやカタカタ・漢字が含まれているかチェックしたい・・・

そのような場合に役立つチェック方法とコード例についてまとめました。

ひらがなをチェックする方法

初めは文字列にひらがなが含まれるか調べる方法

そのためにはUTF8のひらがなの範囲を知る必要があります。

 

その範囲は記号なども含めると次の表の通り

0x3000 ~ 0x301C 全角スペース、句読点などの記号
0x3041 ~ 0x3093 ひらがな本体
0x309B ~ 0x309E 濁点、半濁点、「ゝ」、「ゞ」

ここではひらがな自体に加えてスペース濁点なども一部とみなします。

 

そして次が上の表を元に作った正規表現

 

この正規表現を使えば文字列がひらがなを含むかの判定が可能です。

例えば次がそのコード例

コメントに書いたのがコンソールへの実行結果です。

ちなみにtestメソッドは正規表現がマッチすれば真偽値を返すメソッドです。

その使い方については正規表現のテストができるメソッドまとめでも紹介しました。

上で挙げた正規表現だと「ひらがな」さえ含まれていればマッチします。

 

もし「ひらがな」のみマッチさせたいなら次の正規表現を使えばOK

フォーム入力欄でひらがなだけ許可したいときとかに役立つかもしれません。

カタカナをチェックする方法

お次はカタカナが含まれるかどうかをチェックする方法

こちらもひらがなを同じように正規表現で判定できます。

 

まずUTF8でのカタカナの範囲は次の通り

0x3000 ~ 0x301C 全角スペース、句読点などの記号
0x30A1 ~ 0x30F6 カタカナ本体
0x30FB ~ 0x30FE 「・」、「ー」、「ヽ」、「ヾ」

スペースや記号もカタカナの一部です。

 

そして上の表を元に作ったのが次の正規表現

 

これを使うことで次のようにカタカナが含まれるかの判定ができます。

ちなみに半角カナ(例えば ァ とか サ )は含まないので注意

 

ひらがなと同様にカタカナのみにマッチする正規表現も作れます。

カタカナだけ入力できる名前欄を作りたい、などの場合に使えそうです。

漢字をチェックする方法

最後は漢字が文字列に含まれるか判定する方法

今までは次のような正規表現で判定してました。

でもこれはシステムによっては動かないこともあるので使わない方が無難

あと正規表現中に漢字が含まれるのってなんか違和感があるんですよね・・・

 

そこでいい方法がないか探してたらQiitaの次ページに書いてました。

PHPで漢字判定をする正規表現が載っています。

 

このページを元にJavaScriptで使える形に直してみました。

それが次の正規表現

異体字にも対応できるみたいです。

 

これを使えば次のコード例みたいに漢字が含まれるかの判定が可能

実行結果はコメントの中に書いた通り

確かに漢字のみの kanzi  と漢字を含む all  の場合で true  になってます。

 

ちなみに漢字のみにマッチさせるなら次の正規表現を使えばOK

まあでも漢字だけ判定したい場合はそうそうないとは思います。

ここまでのまとめ

ということで文字列でひらがな・カタカナ・漢字のチェックに使える正規表現まとめ

  • ひらがなが含まれる文字列にマッチ
  • ひらがなのみの文字列にマッチ
  • カタカナが含まれる文字列にマッチ
  • カタカナだけの文字列にマッチ
  • 漢字が含まれる文字列にマッチ
  • 漢字だけの文字列にマッチ

以上JavaScriptでひらがなやカタカナ、漢字をチェックする方法についてでした。

フォーム入力欄の文字制限に使えると思います。