フォームに、半角カタカナ限定の入力項目をおいて、入力項目チェックを正規表現を使って行った際の落とし穴。
まあこれも知ってる人には何を今更って感じなんだろうけど。
ちゃんと表示されるかわからないんだけど、
「^[ア-ンァ-ッ]*$」とか書いたんだけど、これで半角の「ア」~「ン」、「ァ」~「ョ」、「ッ」がチェックできると思って、全文字入力チェックしたんですよ。
すると、何故か「ヲ」だけチェックをすり抜ける。。。
※省いてるけど、濁点・半濁点・長音符も含んでました
原因は文字コード表見ると一目瞭然でした。
半角カタカナの文字コード上での並び順が酷い(笑)
誰がこんな並びにしたのか・・・
見てわかるんだけど、なんで「ヲ」が「ァ」の前にあるの・・・???
「^[ア-ンヲ-ッ]*$」で解決。ふざけんな。
軽く調べてみたら、以下のような情報が。
なんか大正時代に山下芳太郎って人がキー配列を決めたせいらしい。
これも社内ナレッジで共有しとこ。
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 34人 クリック: 578回
- この商品を含むブログ (129件) を見る