UTF-8で正規表現
入力チェックの際に、カナ入力のチェックをすることになった。何をいまさらという感じだが、以前カナでチェックをかけたのは何年前のことだろう。で、例によってはまったのでメモ。
preg_match(‘/ァ-ヶー/’,$str);
最初は上記のように記述してみて、なんとなくOKっぽい感じだった。いざテストの段になって、いろいろ入力してみたら、うまく通らないカタカナがある・・・ってすごくたくさん・・・。「チ」「ツ」「テ」「ト」「ナ」「ニ」「ヌ」「ネ」「ノ」・・・。ぜんぜんだめじゃん。
ちょっと調べて回答を見つけて、ようやく思い出した。preg_matchでUTFな文字列を調べるときは注意事項があったことを。
preg_match(‘/ァ-ヶー/u’,$str);
「u」オプションが必要だった。これにて解決。