回答編集履歴
2
ごじ
test
CHANGED
@@ -37,7 +37,7 @@
|
|
37
37
|
// 母音(aeiou)を大文字に変換
|
38
38
|
const originalStr2 = 'I am a dog.';
|
39
39
|
const newStr2 = originalStr2.replace(/[aeiou]/g, s => s.toUpperCase());
|
40
|
-
console.log(newStr2); // 'I Am A dOg
|
40
|
+
console.log(newStr2); // 'I Am A dOg.'
|
41
41
|
```
|
42
42
|
### 質問者様のコードの不具合
|
43
43
|
- `if()`の丸括弧の中には条件式を入れるはずなのに、なぜか`if(text = jikkenWord.match(/[A-Za-z0-9]/g)){`と、変数に値を代入している。
|
1
追記
test
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
- 文字列には文字コードが割り振られています。
|
12
12
|
- そのコードを変更してやることで、全角→半角に変換します。
|
13
13
|
- それがこの部分です→`String.fromCharCode(s.charCodeAt(0) - 0xFEE0)`
|
14
|
-
-
|
14
|
+
- そして、`0xFEE0`の部分が番号の差分になります(下記例だと100)。
|
15
15
|
- どういう仕組みかというと、
|
16
16
|
- 例えば、全角「1」の文字コードが201番で、半角「1」が101番だったとします。
|
17
17
|
- 同様に例えば、全角「A」の文字コードが320番で、半角「A」が220番だったとします。
|
@@ -19,3 +19,27 @@
|
|
19
19
|
- 上記例の全角・半角の番号は適当ですが、実際にも全角・半角の英数字は番号が等間隔で離れているので、
|
20
20
|
- 引いてやると、全角→半角
|
21
21
|
- 逆に足してやると、半角→全角 にできます。
|
22
|
+
|
23
|
+
### `.replace()`メソッドについて
|
24
|
+
```javascript
|
25
|
+
元の文字列.replace(パターン, 変換後の文字列)
|
26
|
+
```
|
27
|
+
- 第一引数は、正規表現(またはただの文字列でも可)で該当する文字列を検索
|
28
|
+
- 第二引数は、該当した文字列の変換後の文字列、または変換後の文字列を戻すコールバック関数
|
29
|
+
|
30
|
+
例
|
31
|
+
```javascript
|
32
|
+
// 'dog' => 'cat'に変換
|
33
|
+
const originalStr1 = 'I am a dog. You are not a dog.';
|
34
|
+
const newStr1 = originalStr1.replace('dog', 'cat');
|
35
|
+
console.log(newStr1); // 'I am a cat. You are not a dog.'
|
36
|
+
|
37
|
+
// 母音(aeiou)を大文字に変換
|
38
|
+
const originalStr2 = 'I am a dog.';
|
39
|
+
const newStr2 = originalStr2.replace(/[aeiou]/g, s => s.toUpperCase());
|
40
|
+
console.log(newStr2); // 'I Am A dOggy.'
|
41
|
+
```
|
42
|
+
### 質問者様のコードの不具合
|
43
|
+
- `if()`の丸括弧の中には条件式を入れるはずなのに、なぜか`if(text = jikkenWord.match(/[A-Za-z0-9]/g)){`と、変数に値を代入している。
|
44
|
+
- `===`の勘違いかとは思いますが、それにしてもおかしいです。
|
45
|
+
- `.replace()`は条件に合致(マッチ)したものを変換してくれるメソッドなので、`.match()`不要。
|