人名のふりがなとして、ひらがなが入力されているか、JavaScriptやPHPでチェックしています。
photo credit: fhisa via photopin cc
「ー(長音)」がひらがなと判定されない
正規表現でチェックしていて、PHPの場合、文字コードがECU-JPで作られたページでは、
preg_match("/^(¥xa4[¥xa1-¥xf3]|¥xa1[¥xb5¥xb6¥xab])+$/",$str)
でチェックして、UTF-8の場合は、
preg_match("/^[ぁ-ゞ]+$/u",$str)
でチェックしていました。
人名のふりがなとしては問題ありませんでしたが、そのまま他の用途でひらがなチェックとして利用したところ、「ー(長音)」が入力された場合、ひらがなではないと判定されました。
「ー(長音)」をひらがなと判定するには
EUC-JPとUTF-8の両方とも、文字コードと文字の並び順を確認したところ、「ー(長音)」には現在のチェックの仕方では対応できないことがわかりました。
「ー(長音)」を追加する以外ないので、ECU-JPで作られたページでは、
preg_match("/^(¥xa4[¥xa1-¥xf3]|¥xa1[¥xb5¥xb6¥xbc¥xab])+$/",$str)
でチェックして、UTF-8の場合は、
preg_match("/^[ぁ-ゞー]+$/u",$str)
でチェックするようにしたら、ひらがなと判定されるようになりました。
人名のふりがななら以前のままでも問題ない気がしていますが、ひらがなのチェックとしてはふさわしくないので、今後も気をつけていきたいです。