teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答修正

2019/09/03 07:41

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,3 +1,27 @@
1
+ 「空白(全角、もしくは半角)以外の文字があるか」をどう判定するか?
2
+ の回答としては厳密には異なる回答だったので、編集しました。
3
+ ※ 元の回答は下部に残しておきます
4
+
5
+ 空白(全角、もしくは半角)以外の文字が存在するかどうかは、
6
+ 空白(全角、もしくは半角)を取り除いた文字列が空文字(`""`)であるかどうかで判定します。
7
+
8
+ - 空白(全角、もしくは半角)を取り除いた文字列が空文字(`""`)なら、全て空白(全角、もしくは半角)であるということなので、空白(全角、もしくは半角)以外もの字は存在しない。
9
+ - 空白(全角、もしくは半角)を取り除いた文字列が空文字(`""`)以外なら、空白(全角、もしくは半角)以外の文字が残っているので存在する。
10
+
11
+ ```
12
+ foreach(array("ab","a b","ab ","a b"," ","  "," ") as $str){
13
+ if (str_replace(array(" "," "),"", $str) == "") {
14
+ echo "[".$str."]: Not exists non space character." . PHP_EOL;
15
+ } else {
16
+ echo "[".$str."]: Exists non space character." . PHP_EOL;
17
+ }
18
+ }
19
+ ```
20
+
21
+ ----
22
+
23
+ # 以下では、空白(全角、もしくは半角)が存在するかどうかを判定するロジックでした。
24
+
1
25
  空白(全角、もしくは半角)を取り除いた文字列と元の文字列と比較した結果で判定します。
2
26
  同じなら含まれないし、異なれば含まれます。
3
27