人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php5.2.2の正規表現に関する質問です。
文字コードはutf-8で、pearのaddRuleを使用しています。
$patternの部分の質問です。

$pattern = '/^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6]|\x83\xbc)| | )+$/';
$form->addRule('item_name', '文字が正しくありません', 'regex', $pattern, 'client');

全角カタカナ, 半角スペース, 全角スペースチェックは上記のように書くことまでは解ったのですが、以下すべてをチェックするにはどのように変えればいいですか?
『全角カタカナ, 半角スペース, 全角スペース, 半角英数字, 全角英数字, 半角シングルクオーテーション, 全角シングルクオーテーション』
いろいろ試しますがなかなかできません。
よろしくお願いします。

●質問者: seadwell
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● oil999
●100ポイント

$patternを次のようにしてみてください。

$pattern = '/^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6]|\x83\xbc)|(\xef(\bc[\x90-\x99]|[\a1-\ba])|(\xbd[\x81-\x9a]))| | |\'’|[a-zA-Z0-9])+)$/';

seadwellさんのコメント
ご回答ありがとうございます。 |(\xef(\bc[\x90-\x99]|[\a1-\ba])|(\xbd[\x81-\x9a])) この部分があると、pearでワーニングが出るんですよね。 Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 76 in /home/***/***/script/PEAR/HTML/QuickForm/Rule/Regex.php on line 73 で、 '/^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6]|\x83\xbc)|[a-zA-Z0-9\']|[a-zA-Z0?9’]| | )+$/' のようにしたらとりあえず今のところ正常に動いています。 参考になりました。ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ