297
249

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-06-08

日本語環境ではハイフンっぽく見える文字が何種類も有ります。
そのせいで、住所入力欄などでハイフン(っぽい文字)でバリデーションにひっかかってイライラするということが多々有ります。
一般のユーザーがハイフンっぽい文字の違いを理解しているはずもないので、ハイフン系文字の内、特定の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さんに他にもたくさんのハイフンっぽい文字があることを教えて頂きました。
297
249
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
297
249

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?