Edited at

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

More than 3 years have passed since last update.

日本語環境ではハイフンっぽく見える文字が何種類も有ります。

そのせいで、住所入力欄などでハイフン(っぽい文字)でバリデーションにひっかかってイライラするということが多々有ります。

一般のユーザーがハイフンっぽい文字の違いを理解しているはずもないので、ハイフン系文字の内、特定の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さんに他にもたくさんのハイフンっぽい文字があることを教えて頂きました。