68user's page 掲示板

Prev< No. 4843〜4844> Next  [最新発言に戻る] [過去ログ一覧]
No. 4843 # 68user 2007/10/16 (火) 20:41:06
>>4842 yuki
そのページでも紹介していますが、文字単位でマッチさせるために
    http://www.din.or.jp/~ohzaki/perl.htm#JP_Match
という工夫をしています。

PHP であれば mb 系の関数を使えば文字単位で切り出せると思いますが、
いわゆる機種依存文字に対応しているかどうかわからないのでまずは
試してみてください。対応していなければ、上記のようなやり方で
1文字ずつ取り出す必要があるかもしれません。

No. 4844 # yuki 2007/10/19 (金) 14:15:48
>>4843 68user様
ご助言ありがとうございます。
ご案内いただいたページを参考にして以下のように記述したところ
想定通りに動くことを確認できました。

$ascii = '[\x00-\x7F]';
$twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]';
$threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]';

$fradrs = $_POST['adrs'];
$check = mb_convert_encoding($fradrs,'EUC-JP');
if (ereg("^($ascii|$twoBytes|$threeBytes)*(\x8E[\xA0-\xDF]|[\xAD\xF9\xFA\xFB\xFC][\xA1-\xFE])", $check)) {
    echo "マッチしました。\n";

mb系は私の未熟さゆえかうまく動作しませんでした…。
68user様、ありがとうございました。

Prev< No. 4843〜4844> Next  [最新発言に戻る] [過去ログ一覧]