
教えて頂けますか?
フォームからPOSTされた文字列が半角数値、または文字列の場合許可し、全角数値の場合拒否したいのですが
全角数値が is_numeric で数値として認識しない為
うまくいきません。
他に良い方法がありますか?
よろしくおねがいします。
if ( strlen($_POST['test']) != mb_strlen($_POST['test'],'UTF-8') &&
is_numeric($_POST['test']) == TRUE ){
echo '半角で入力してください。<br />';
}
No.2ベストアンサー
- 回答日時:
mb_ereg_matchが使えそうだけど、文字コードの指定が
面倒だなっと・・・
というわけで代替案
if( $_POST['test'] != mb_convert_kana($_POST['test'],"n","UTF-8" ){
echo '半角で入力してください。<br />";
}
とかどうでしょ?
mb_convert_kanaで、全角数値を半角数値に変換し
元の文と比較して違えば、元の文に全角数値が含まれていた事になる
という考え方です。
No.4
- 回答日時:
最善の方法ではないかもしれませんが、
過去に似たような処理を行ったときの手順を。
function test($exp)
{
//評価対象文字列を半角に変換したものを用意する。
$exp2 = mb_convert_kana($val, 'ASKV');
//半角数値であればtrueを返す。
if (is_numeric($val)) {
return true;
//半角に変換した結果数値になるのであれば、
//元の値は全角数値であると判断し、falseを返す。
} else if(is_numeric($exp2)) {
return false;
}
}
コードは検証していませんがこんな方法でいかがでしょうか?
No.3
- 回答日時:
「数値」とは ASCIIの 0-9 であって、「全角数値」というものは存在しない。
したがって、式「strlen($_POST['test']) != mb_strlen($_POST['test'],'UTF-8')&&is_numeric($_POST['test']) == TRUE」は成立しない、です。
「is_numeric($_POST['test']) == TRUE」を「preg_match("/\xEF\xBC[\x90-\x99]/",$test)」にでもして、エラーメッセージは「数字は半角で入力してください。」としたらどうかな。
PHPはよく知らないので役にはたてんかも。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/04/01 09:10
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- その他(IT・Webサービス) Googleスプレッドシートの数式 5 2022/12/08 17:52
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのCOUNTIFが正しくカウ...
-
XMLのタグ名の禁則文字
-
Phonetic関数を利用して文章中...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
文字の入力で横バー上段、中断...
-
記号は半角と全角どちらがよい...
-
全角英数文字が嫌われる理由を...
-
PHP 全角・半角・英数字 エラ...
-
VBAで英数字入力チェックしたい。
-
エクセルでの漢字、カタカナ、...
-
php言語の全角入力のチェック方...
-
ExcelのVBAでカタカナをチェッ...
-
SPREADで全角文字の半角...
-
【Excel VBA】A列の全角・半角...
-
バッチファイル 全角検索
-
特定の文字を簡単な操作で半角...
-
全角括弧と全角読点の間隔を狭...
-
全角、半角、改行コードが混在...
-
IT企業の技術屋にとって全角英...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
エクセルのCOUNTIFが正しくカウ...
-
VBAで英数字入力チェックしたい。
-
全角英数文字が嫌われる理由を...
-
XMLのタグ名の禁則文字
-
文字列中の両丸括弧を取り除くV...
-
半角記号、全角記号を含む正規...
-
全角半角変換 C++/CLI
-
Excel2002 一桁数字だけ全角に置換
-
2つ以上の連続する空白文字を除去
-
エクセルでの漢字、カタカナ、...
-
Replace関数は文字数の制限ある...
-
Accessの文字数を調べたい
-
なぜインターネットでは半角カ...
-
VBScriptである文字列に半角文...
-
ExcelのVBAでカタカナをチェッ...
-
パソコンで全角、半角文字の切...
おすすめ情報