質問編集履歴
3
前提・実現したいことを更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,6 +5,18 @@
|
|
5
5
|
PHP(Version 5.2.8)にて正規表現のpreg_matchを使い、全角カナの入力チェックを行いたい。
|
6
6
|
|
7
7
|
画面に全角カナを入力する欄があり、チェックを行いたい。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
回答からの結論:
|
12
|
+
|
13
|
+
ソースコードがSJISの場合、正規表現のパターンおよび、チェック対象の文字列の
|
14
|
+
|
15
|
+
両方をmb_convert_encodingで"UTF-8"へ変換してpreg_matchを行う。
|
16
|
+
|
17
|
+
$KANA_UTF8 = mb_convert_encoding($KANA_SJIS, "UTF-8", "SJIS");
|
18
|
+
|
19
|
+
preg_match(mb_convert_encoding('/^[ァ-ヴー ]+$/u', "UTF-8", "SJIS"), $KANA_UTF8);
|
8
20
|
|
9
21
|
|
10
22
|
|
2
該当のソースコードを更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,15 +30,19 @@
|
|
30
30
|
|
31
31
|
```PHP
|
32
32
|
|
33
|
-
$KANA
|
33
|
+
$KANA = "画面で入力された全角カナ";
|
34
34
|
|
35
|
+
if ($KANA == "") {
|
36
|
+
|
37
|
+
$MSG = "必須です";
|
38
|
+
|
35
|
-
preg_match('/^[ァ-ヴー ]+$/', $KANA
|
39
|
+
} elseif (!preg_match('/^[ァ-ヴー ]+$/u', mb_convert_encoding($KANA, "UTF-8", "SJIS"))) {
|
40
|
+
|
41
|
+
$MSG = "カナを入力して下さい";
|
42
|
+
|
43
|
+
}
|
36
44
|
|
37
45
|
|
38
|
-
|
39
|
-
KANA_UTF8 = mb_convert_encoding($KANA_SJIS, "UTF-8", "SJIS");
|
40
|
-
|
41
|
-
preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8);
|
42
46
|
|
43
47
|
```
|
44
48
|
|
1
"試したこと"へ追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -48,15 +48,19 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
+
想定した結果はいずれもint(1)でしたが、以下となった。
|
52
|
+
|
53
|
+
|
54
|
+
|
51
55
|
$KANA_SJIS = "コウ ゾビ";
|
52
56
|
|
53
57
|
echo(mb_detect_encoding($$KANA_SJIS)); ⇒SJIS
|
54
58
|
|
55
59
|
|
56
60
|
|
57
|
-
確認1: var_dump(preg_match('/^[ァ-ヴー ]+$/', $KANA_SJIS)); ⇒int(1)
|
61
|
+
確認1: var_dump(preg_match('/^[ァ-ヴー ]+$/', $KANA_SJIS)); ⇒結果:int(1)
|
58
62
|
|
59
|
-
確認2: var_dump(preg_match('/^[ァ-ヴー ]+$/', "ワ")); ⇒int(0)
|
63
|
+
確認2: var_dump(preg_match('/^[ァ-ヴー ]+$/', "ワ")); ⇒結果:int(0)
|
60
64
|
|
61
65
|
|
62
66
|
|
@@ -70,7 +74,7 @@
|
|
70
74
|
|
71
75
|
echo(mb_detect_encoding($KANA_UTF8)); ⇒UTF-8
|
72
76
|
|
73
|
-
確認3: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒bool(false)
|
77
|
+
確認3: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒結果:bool(false)
|
74
78
|
|
75
79
|
|
76
80
|
|
@@ -78,7 +82,7 @@
|
|
78
82
|
|
79
83
|
mb_regex_encoding("UTF-8");
|
80
84
|
|
81
|
-
確認4: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒bool(false)
|
85
|
+
確認4: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒結果:bool(false)
|
82
86
|
|
83
87
|
|
84
88
|
|
@@ -86,9 +90,9 @@
|
|
86
90
|
|
87
91
|
確認5:
|
88
92
|
|
89
|
-
var_dump(mb_ereg('^[ァ-ヴー ]+$', $KANA_SJIS)); ⇒int(1)
|
93
|
+
var_dump(mb_ereg('^[ァ-ヴー ]+$', $KANA_SJIS)); ⇒結果:int(1)
|
90
94
|
|
91
|
-
var_dump(mb_ereg('^[ァ-ヴー ]+$', "ワ")); ⇒int(1)
|
95
|
+
var_dump(mb_ereg('^[ァ-ヴー ]+$', "ワ")); ⇒結果:int(1)
|
92
96
|
|
93
97
|
|
94
98
|
|