変数に格納された文字列に対して、空白(全角、もしくは半角)以外の文字列が一文字でもその変数に含まれているかどうかを判定したいのですが、どのような方法が考えられますでしょうか?
検索し、調べたのですが、そのような方法はヒットしませんでした...
追記
調べた内容は、文字列を検索する必要があると思った為、キーワードに「文字列」「空白」「検索」や「空白のみ検索」などを入れ、検索し、文字列検索の関数をみつけましたが、それを生かす方法が分からず、ロジックを考えている過程で詰まってしまいました
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/03 03:54
2019/09/03 04:36
2019/09/03 04:49
退会済みユーザー
2019/09/03 05:14
2019/09/03 05:15 編集
2019/09/03 05:17
2019/09/03 09:22
回答5件
0
こういう場合どうしたらいいかなとなった時に 行うべき方法 を教えます。
PHPのリファレンスは以上によくまとまっていて、まず、 関数リファレンス一覧のページをブックマークしておきます 。
https://www.php.net/manual/ja/funcref.php
とくに、「文字列」や「配列」関連のページは今後よく見るページになるでしょう。
今あなたがやりたいことは、「変数に格納された文字列に対して、空白(全角、もしくは半角)以外の文字列が一文字でもその変数に含まれているか」なのですから、「文字列」関連の関数を調べる。
https://www.php.net/manual/ja/book.strings.php
こちらですね。
文字列を操作する関数はこんなにありますが、 全てを覚える必要はありません。
一覧の中から使えそうな関数を 毎回探せばいい のです。
これ使えそうだなと思ったら、 詳細のページをみて、使い方を調べながら、コードを書いて試してみる。これを繰り返せばいいのです。
投稿2019/09/03 04:02
編集2019/09/03 04:13退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/09/03 04:22
退会済みユーザー
2019/09/03 04:30 編集
退会済みユーザー
2019/09/03 04:42
退会済みユーザー
2019/09/03 04:47
2019/09/03 04:48
退会済みユーザー
2019/09/03 04:48
退会済みユーザー
2019/09/03 04:49
退会済みユーザー
2019/09/03 04:50
退会済みユーザー
2019/09/03 04:51
2019/09/03 04:52
退会済みユーザー
2019/09/03 04:53
2019/09/03 04:53
退会済みユーザー
2019/09/03 04:53
退会済みユーザー
2019/09/03 04:54
退会済みユーザー
2019/09/03 04:56
退会済みユーザー
2019/09/03 04:56
2019/09/03 04:58 編集
2019/09/03 04:59
退会済みユーザー
2019/09/03 05:01
退会済みユーザー
2019/09/03 05:03
2019/09/03 05:04
退会済みユーザー
2019/09/03 05:05
退会済みユーザー
2019/09/03 05:05
退会済みユーザー
2019/09/03 05:07 編集
2019/09/03 05:11
退会済みユーザー
2019/09/03 05:17
退会済みユーザー
2019/09/03 05:19
2019/09/03 05:22 編集
退会済みユーザー
2019/09/03 05:21
退会済みユーザー
2019/09/03 05:21
退会済みユーザー
2019/09/03 05:25
2019/09/03 05:25
退会済みユーザー
2019/09/03 05:27
2019/09/03 05:27
退会済みユーザー
2019/09/03 05:29
2019/09/03 05:29
2019/09/03 05:30 編集
2019/09/03 05:30
退会済みユーザー
2019/09/03 05:33 編集
2019/09/03 05:33
退会済みユーザー
2019/09/03 05:33
退会済みユーザー
2019/09/03 05:33
退会済みユーザー
2019/09/03 05:36 編集
2019/09/03 05:37 編集
2019/09/03 05:38
2019/09/03 05:38
2019/09/03 05:39 編集
退会済みユーザー
2019/09/03 05:40
2019/09/03 05:42
退会済みユーザー
2019/09/03 05:43
退会済みユーザー
2019/09/03 05:45
2019/09/03 05:47 編集
2019/09/03 05:46 編集
退会済みユーザー
2019/09/03 05:46
2019/09/03 06:21 編集
退会済みユーザー
2019/09/03 05:50
2019/09/03 05:50
2019/09/03 05:50
2019/09/03 05:51
2019/09/03 05:53 編集
退会済みユーザー
2019/09/03 05:54
2019/09/03 05:54
2019/09/03 05:55
退会済みユーザー
2019/09/03 05:56
退会済みユーザー
2019/09/03 05:57
退会済みユーザー
2019/09/03 05:59
退会済みユーザー
2019/09/03 05:59
2019/09/03 06:00
退会済みユーザー
2019/09/03 06:00
2019/09/03 06:01
退会済みユーザー
2019/09/03 06:02
退会済みユーザー
2019/09/03 06:04 編集
2019/09/03 06:04
2019/09/03 06:25 編集
2019/09/03 07:17
0
なるほど、大喜利ですか
PHP
1<?php 2$hoge = 'ここに文字列'; 3$hoge = str_replace(' ','',$hoge); 4$hoge = str_replace(' ','',$hoge); 5$hoge = str_replace(' ','',$hoge); 6if (empty($hoge)) { 7echo 'なかったよ'; 8} else { 9echo 'あったよ'; 10}
PHP
1<?php 2$hoge1 = "ここに文字列"; 3$hoge2 = mb_strlen($hoge1); 4for ($i = 0; $i < $hoge2; $i++) { 5 $hoge3 = mb_substr($hoge1, $i, 1); 6 if (preg_match("/\S/", $hoge3)) { 7 echo "残念"; 8 break; 9 } else { 10 echo "OK"; 11 break; 12 } 13}
どっちにしてもbreakする(文法的にいいのかな?)意味不明なコード。(もうちょい長くしたかった)
このまま納品先に出しても怒られると思うので知りません。
投稿2019/09/03 06:18
編集2019/09/03 11:52総合スコア10429
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/03 06:48
2019/09/03 07:15
2019/09/03 07:16
2019/09/03 07:17
2019/09/03 07:34
2019/09/03 07:57
2019/09/03 08:00
2019/09/03 08:25 編集
2019/09/03 08:31
2019/09/03 08:42
0
ベストアンサー
「空白(全角、もしくは半角)以外の文字があるか」をどう判定するか?
の回答としては厳密には異なる回答だったので、編集しました。
※ 元の回答は下部に残しておきます
空白(全角、もしくは半角)以外の文字が存在するかどうかは、
空白(全角、もしくは半角)を取り除いた文字列が空文字(""
)であるかどうかで判定します。
- 空白(全角、もしくは半角)を取り除いた文字列が空文字(
""
)なら、全て空白(全角、もしくは半角)であるということなので、空白(全角、もしくは半角)以外もの字は存在しない。 - 空白(全角、もしくは半角)を取り除いた文字列が空文字(
""
)以外なら、空白(全角、もしくは半角)以外の文字が残っているので存在する。
foreach(array("ab","a b","ab ","a b"," "," "," ") as $str){ if (str_replace(array(" "," "),"", $str) == "") { echo "[".$str."]: Not exists non space character." . PHP_EOL; } else { echo "[".$str."]: Exists non space character." . PHP_EOL; } }
以下では、空白(全角、もしくは半角)が存在するかどうかを判定するロジックでした。
空白(全角、もしくは半角)を取り除いた文字列と元の文字列と比較した結果で判定します。
同じなら含まれないし、異なれば含まれます。
PHP
1<?php 2 3foreach(array("ab","a b","ab ","a b"," "," "," ") as $str){ 4 if (str_replace(array(" "," "),"", $str) == $str) { 5 echo "[".$str."]: Not exists space character." . PHP_EOL; 6 } else { 7 echo "[".$str."]: Exists space character." . PHP_EOL; 8 } 9}
投稿2019/09/03 04:41
編集2019/09/03 07:41総合スコア7918
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/03 06:21
退会済みユーザー
2019/09/03 08:41 編集
2019/09/03 09:35
0
PHP
1$a=["ab","a b","ab ","a b"," "," "," "]; 2$pattern="/[^\x20\xE3\x80\x80]+/u"; 3foreach($a as $str){ 4 if(preg_match($pattern,$str)){ 5 print "[".$str."]<br>"; 6 } 7}
投稿2019/09/03 04:18
編集2019/09/03 04:38総合スコア116835
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/03 04:24
2019/09/03 04:39 編集
退会済みユーザー
2019/09/03 04:39
2019/09/03 04:43
2019/09/03 04:47
2019/09/03 04:57
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。