- ベストアンサー
全角ひらがな、漢字をマッチさせたい
Perlでフォームに入力された値をチェックするとき、入力される文字列は半角文字以外を入力されるとエラーになるスクリプトを書きたいと思っています。 (ただし、半角に出来る文字「カタカナ、記号等」は半角に変換するのでエラーでは無いとしたいです) どうすれば実現出来るでしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
Perlでフォームに入力された値をチェックするとき、入力される文字列は半角文字以外を入力されるとエラーになるスクリプトを書きたいと思っています。 (ただし、半角に出来る文字「カタカナ、記号等」は半角に変換するのでエラーでは無いとしたいです) どうすれば実現出来るでしょうか。 よろしくお願いします。
補足
回答ありがとうございます。 参考URLを見てやってみたのですがうまくいきません。 カタカナが1文字の時はうまく行くようなのですが、複数のカタカナになった場合、失敗します。 文字コードは全てEUCで行っています。 以下がやろうとしている手順です。 1.全角文字を半角文字へ変換する 2.チェックを行う #1バイト文字以外の時 if($buf !~ /[\x00-\x7F]/){ #半角カタカナ以外のとき if($buf !~ /(?:\x8E[\xA6-\xDF])/){ print "NG\n"; exit; } } print "OK\n"; どこがおかしいのでしょうか。 正規表現はまだよく分かっていないためご迷惑をおかけしますがよろしくお願いします。