数回前の「日本語文字数をチェック」と同様、バリデーション時にアルファベットのみかどうかをチェックする関数です。
CakePHP1.3で使っていましたが、2.x でも使えると思います。
どのバリデーションからも使いたいので、日本語文字数をチェック」と同様 app_model に記述しています。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22  | 
						/** * アルファベットのみかどうかチェック *  */ function is_alphabet_only( $field=array() ) {     if (is_array($field)) {         foreach ($field as $name => $value) {             if (preg_match("/^([a-zA-Z])*$/u", $value)) {                 return true;             } else {                 return false;             }         }     } else {         if (preg_match("/^([a-zA-Z])*$/u", $field)) {             return true;         } else {             return false;         }     } }  | 
					
preg_match にある u オプションは、UTF-8のオプションです。
バリデーション対象のモデルからはモデルからは以下のようにしてコールすれば、bool値が返ります。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | 
						var $validate = array(     'cc_family_name' => array(         array(             'rule'       => 'notEmpty',             'message'    => '『カード名義(姓)』を入力して下さい。',             'required'   => true,             'allowEmpty' => false,         ),         array(             'rule'    => array('is_alphabet_only'),             'message' => '『カード名義(姓)』は半角英字で入力して下さい。',         ),     ) );  | 
					
[tgAmazonItemLookup asin=”4088707702″ related=”1″]
