Perl UTF8 での全角カタカナチェック
■環境
Linux, Perl 5.8 です。
画面(HTML)と処理(Perl)は分けて作成しており、Templateモジュールで画面表示を行っています。
HTMLもPerlも文字コードはUTF-8です。
■質問
フォームからうけとった文字列で全角カタカナと特定の全角記号以外はエラーとする
入力チェック処理(正規表現)がうまくチェックを行ってくれません。
SJISだと以下のような書き方があるそうなのですが、UTF8での書き方がわかりません。
・SJIS
if($data !~ /^(?:\x83[\x40-\x96])+$/){
$mes="全角カナ以外の文字が指定されています";
}
UTF8での書き方を教えて頂きたいです。
なお、許容する全角カタカナと特定の全角記号は以下のとおりです。
==========================================================
アイウエオカキクケコサシスセソタチツテトナニヌネノ
ハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン
ァィゥェォッャュョヵヶヴガギグゲゴザジズゼゾダヂヅデド
バビブベボパピプペポーヽヾ
==========================================================
ご教授お願い致します。
お礼
ご指摘の方法でいけました。 utf8 では [\w] = [0-9a-zA-Z_] ではないのですね。 ありがとうございました。