雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|

2005-01-11 [長年日記]

[Ruby] かな・カナの表現

CGIの不正文字入力チェックでバグが発覚。原因を探ると、

% ruby -Ke -e 'if (/[あ-ん]/ =~ "ぁ" ) then print "ok\n" else print "ng\n" end'
ng 
% ruby -Ke -e 'if (/[ア-ン]/ =~ "ァ" ) then print "ok\n" else print "ng\n" end'
ng

だそうで(「ぁ」「ァ」は小さな文字)、しばらく悩んだ後、漢字コード表を見て納得。(EUCで)ひらがな全体を現す表現は

[ぁ-ん](「ぁ」は小さな「あ」)

カタカナ全体を現す表現は

[ァ-ヶ](「ァ」は小さな「ア」で「ヶ」は小さな「ケ」)

ということのようです。う〜ん。

ちなみに、Unicodeではひらがなの「ん」の後ろに「う゛」があり、カタカナの「ヶ」の後ろに「ワ゛」「ヰ゛」「ヱ゛」「ヲ゛」がありますね。この辺の文字を渡してくるブラウザあったらどうしましょう。