PHPで指定文字たとえば(a-z A-Z 1-9)のみつかえて
それ以外だとfalseを返すプログラムは可能でしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
lang
1$a = "文字列"; 2if( preg_match("/[A-Za-z0-9]*$/",$a) ){ 3 echo "大丈夫"; 4}else{ 5 echo "駄目な文字がある"; 6} 7 8
投稿2015/04/18 03:57
総合スコア84553
0
lang
1function is_alnum($string) { 2 return !is_null($string) 3 ? preg_match("/^[a-zA-Z0-9]+$/", $string) 4 : false; 5} 6 7// test 8assert(is_alnum("a")); 9assert(is_alnum("A")); 10assert(is_alnum("0")); 11assert(is_alnum("z")); 12assert(is_alnum("Z")); 13assert(is_alnum("9")); 14 15assert(is_alnum("a0")); 16assert(is_alnum("0z")); 17assert(is_alnum("00")); 18 19assert(!is_alnum(null)); 20assert(!is_alnum("")); 21assert(!is_alnum("aにほんご")); 22assert(!is_alnum("にaほんご")); 23assert(!is_alnum("にaほんごa"));
投稿2015/04/18 04:13
総合スコア759
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
入力値に対して判定するということでしょうか。
それならばこういうのはどうでしょうか。
lang
1<?php 2$input_value = $_POST['value']; 3$charCollection = array_unique(str_split($input_value)); 4 5$range = array_merge(range('A', 'Z'), range('a', 'z'), range(0, 9)); 6$isContains = true; 7foreach ($charCollection as $char) { 8 if (!in_array($char, $range, true)) { 9 $isContains = false; 10 break; 11 } 12} 13var_dump($isContains); 14?>
もっと効率のいい方法はあるかもしれません…。
投稿2015/04/18 03:34
総合スコア870
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
http://php.net/manual/ja/function.in-array.php
三番目のパラメータ strict が TRUE に設定された場合、 in_array() は、haystack の中の needle の 型も確認します。
そうすると、
```
range(0, 9)
```
はint型で比較されることになると思いますが、$_POST['value']をstr_split()したら"0"は、果たしてint型になるんでしょうか?
2015/04/18 15:31
おっしゃる通りですね…。本当にお恥ずかしい限りです。
退会済みユーザー
2015/04/18 15:32
いえ、お気になさらずに。
あなたの回答が一番仕様に沿っているかなと思ってよく読んでみたらやっぱり間違っていただけです。
2015/04/18 15:41
そう言っていただけると救われます。
本質問トピックでは逆に勉強させていただきました。ありがとうございます。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/18 04:13
2015/04/18 10:11
2015/04/18 12:36
退会済みユーザー
2015/04/18 14:05