stabuckyのブログ。JavaScriptで漢字を表す正規表現TweetPocket正規表現を使って漢字を表す方法を毎回、忘れてしまい、その都度、調べています。調べた結果をまとめてみました。今回はJavaScriptの場合です。正しくない方法JavaScriptの正規表現はUnicode(UTF16)で判定される。最近のJavaScriptではエンコードに関わらずUnicodeが使われるらしい。「charset=shift_jis」としてもUnicodeで判定される。charCodeAtで表示されるコードはUnicodeによるものである。ネットで調べると正規表現で漢字を「亜-熙」と指定する方法が紹介されている。「亜」U+4E9C「熙」U+7199これはシフトJISによる順序なので、JavaScriptでは使えない。次のようにJavaScriptで「一」を調べるとマッチしない。t.match(/[亜-熙]/);「一」U+4E00であるので、「一」<「亜」<熙」となってしまうためである。CJK統合漢字JavaScriptでは「一-龠」と指定する方法が紹介されている。「一」U+4E00「龠」U+9FA0常用漢字には2136個あるがUnicode順に並べると先頭が「一」で末尾が「齢」になる。「一」U+4E00「齢」U+9F62したがって常用漢字は「一-龠」に収まる。「一-龠」は「\u4E00-\u9FA0」とも書ける。これを使って、もっと広めに「\u4E00-\u9FFF」と書いてもよい。これはCJK統合漢字の範囲である。この後はイ文字という中国の少数民族の文字になるらしい。一般的だが、CJK統合漢字にない漢字もある。常用漢字以外に名前に使える人名用漢字というのがある。丑(U+4E11)から響(響の異体字、U+FA69)までが該当する。これらはCJK統合漢字ではなく、CJK互換漢字という範囲「\uF900-\uFAFF」にある。「々」(U+3005)、「〇」(U+3007)を漢字とするかどうかは場面によって変わる。漢字のみをすべて網羅するのは難しい。まとめ「一から龠まで」または「CJK統合漢字」を指定する。漢字が含まれるかどうかを判定するのであればこれが現実的。コメントをキャンセルメールアドレスが公開されることはありません。付いている欄は必須項目です送信してください。曖昧な記憶と憶測でロックを語る最後は運です。stabucky.com。