ハイフンに似てる文字の文字コード

  • 94
    いいね
  • 2
    コメント
この記事は最終更新日から1年以上が経過しています。

日本語環境ではハイフンっぽく見える文字が何種類も有ります。
そのせいで、住所入力欄などでハイフン(っぽい文字)でバリデーションにひっかかってイライラするということが多々有ります。
一般のユーザーがハイフンっぽい文字の違いを理解しているはずもないので、ハイフン系文字の内、特定の1つだけを許容するようなバリデーションルールを設定してしまうと、ユーザビリティを低下させてユーザの離脱を招きます。
ハイフンっぽいものは全部入力できるようにして、サーバサイドで統一的な文字に置換するほうが良いでしょう。

というわけで、日本語環境で入力できるハイフンをまとめてみました。

文字 UTF-8 Unicode 説明
- 2D U+002D ASCIIのハイフン
E383BC U+30FC 全角の長音
E28090 U+2010 別のハイフン
E28091 U+2011 改行しないハイフン
E28093 U+2013 ENダッシュ
E28094 U+2014 EMダッシュ
E28095 U+2015 全角のダッシュ
E28892 U+2212 全角のマイナス
EFBDB0 U+FF70 半角カナの長音

日本語IMEから入力可能なものはこれくらいでしょうか。

例えば、PHPでこれら全てにマッチする正規表現を書くと以下のようになります。

$regex = '/[\x{30FC}\x{2010}-\x{2015}\x{2212}\x{FF70}-]/u';

実はまだまだたくさんハイフンに似た文字は有ります。
下記記事を参考に状況に応じて実装して下さい。

参考

謝辞

  • hnwさんに他にもたくさんのハイフンっぽい文字があることを教えて頂きました。