- 締切済み
PHPでの全角・半角判定
メールアドレスのチェックのため、 ゆるめの判定でとりあえず全角か半角か判定したいのですが、 どうすればできますでしょうか? ちなみに以下の文字もRFC的にはOKのため、 許可したいと思っております。 【_.-+/?&$%|!#~^'】
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- php504
- ベストアンサー率42% (926/2160)
回答No.2
0x80以上をチェックすれば文字コードに関係なく判定できますね。 0x7FもDELコードなので0x7F-0xFFまでをチェックすればとりあえず2バイト文字はないということになります。 preg_match("/[\x7F-\xFF]/",$str)
- athanasius
- ベストアンサー率37% (361/964)
回答No.1
全角というか、日本語関連の全角文字があるかというチェックなら 文字コード次第だったりしますが、EUCだと正規表現で 0xA1 ~ 0xFE があるかどうかチェックするだけでも良さそうな気がします。 ※半角カナは考慮してません。 if (preg_match("/[\xA1-\xFE][\xA1-\xFE]/",$str)){ // 全角有り }else{ // 全角無し }
質問者
補足
strlenとmb_strlenで違いがある場合は、 全角文字であると判断した方が簡単そうなため、 それで対応いたしました。
補足
strlenとmb_strlenで違いがある場合は、 全角文字であると判断した方が簡単そうなため、 それで対応いたしました。