質問編集履歴
3
前提・実現したいことを更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,12 @@
|
|
3
3
|
PHP(Version 5.2.8)にて正規表現のpreg_matchを使い、全角カナの入力チェックを行いたい。
|
4
4
|
画面に全角カナを入力する欄があり、チェックを行いたい。
|
5
5
|
|
6
|
+
回答からの結論:
|
7
|
+
ソースコードがSJISの場合、正規表現のパターンおよび、チェック対象の文字列の
|
8
|
+
両方をmb_convert_encodingで"UTF-8"へ変換してpreg_matchを行う。
|
9
|
+
$KANA_UTF8 = mb_convert_encoding($KANA_SJIS, "UTF-8", "SJIS");
|
10
|
+
preg_match(mb_convert_encoding('/^[ァ-ヴー ]+$/u', "UTF-8", "SJIS"), $KANA_UTF8);
|
11
|
+
|
6
12
|
### 発生している問題・エラーメッセージ
|
7
13
|
|
8
14
|
```
|
2
該当のソースコードを更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,11 +14,13 @@
|
|
14
14
|
### 該当のソースコード
|
15
15
|
|
16
16
|
```PHP
|
17
|
-
$
|
17
|
+
$KANA = "画面で入力された全角カナ";
|
18
|
+
if ($KANA == "") {
|
19
|
+
$MSG = "必須です";
|
18
|
-
preg_match('/^[ァ-ヴー ]+$/', $
|
20
|
+
} elseif (!preg_match('/^[ァ-ヴー ]+$/u', mb_convert_encoding($KANA, "UTF-8", "SJIS"))) {
|
21
|
+
$MSG = "カナを入力して下さい";
|
22
|
+
}
|
19
23
|
|
20
|
-
KANA_UTF8 = mb_convert_encoding($KANA_SJIS, "UTF-8", "SJIS");
|
21
|
-
preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8);
|
22
24
|
```
|
23
25
|
|
24
26
|
### 試したこと
|
1
"試したこと"へ追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -23,27 +23,29 @@
|
|
23
23
|
|
24
24
|
### 試したこと
|
25
25
|
|
26
|
+
想定した結果はいずれもint(1)でしたが、以下となった。
|
27
|
+
|
26
28
|
$KANA_SJIS = "コウ ゾビ";
|
27
29
|
echo(mb_detect_encoding($$KANA_SJIS)); ⇒SJIS
|
28
30
|
|
29
|
-
確認1: var_dump(preg_match('/^[ァ-ヴー ]+$/', $KANA_SJIS)); ⇒int(1)
|
31
|
+
確認1: var_dump(preg_match('/^[ァ-ヴー ]+$/', $KANA_SJIS)); ⇒結果:int(1)
|
30
|
-
確認2: var_dump(preg_match('/^[ァ-ヴー ]+$/', "ワ")); ⇒int(0)
|
32
|
+
確認2: var_dump(preg_match('/^[ァ-ヴー ]+$/', "ワ")); ⇒結果:int(0)
|
31
33
|
|
32
34
|
|
33
35
|
$KANA_UTF8 = mb_convert_encoding($KANA_SJIS, "UTF-8", "SJIS");
|
34
36
|
|
35
37
|
|
36
38
|
echo(mb_detect_encoding($KANA_UTF8)); ⇒UTF-8
|
37
|
-
確認3: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒bool(false)
|
39
|
+
確認3: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒結果:bool(false)
|
38
40
|
|
39
41
|
|
40
42
|
mb_regex_encoding("UTF-8");
|
41
|
-
確認4: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒bool(false)
|
43
|
+
確認4: var_dump(preg_match('/^[ァ-ヴー ]+$/u', $KANA_UTF8)); ⇒結果:bool(false)
|
42
44
|
|
43
45
|
|
44
46
|
確認5:
|
45
|
-
var_dump(mb_ereg('^[ァ-ヴー ]+$', $KANA_SJIS)); ⇒int(1)
|
47
|
+
var_dump(mb_ereg('^[ァ-ヴー ]+$', $KANA_SJIS)); ⇒結果:int(1)
|
46
|
-
var_dump(mb_ereg('^[ァ-ヴー ]+$', "ワ")); ⇒int(1)
|
48
|
+
var_dump(mb_ereg('^[ァ-ヴー ]+$', "ワ")); ⇒結果:int(1)
|
47
49
|
|
48
50
|
### 補足情報(FW/ツールのバージョンなど)
|
49
51
|
|