回答編集履歴
2
コード追加
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
```javascript
|
9
9
|
const replaceAddress = str => str.replace(
|
10
10
|
/(\d+)丁目(\d+)番((\d+)号)?/,
|
11
|
-
(_, p1, p2, p3, p4) =>
|
11
|
+
(_, p1, p2, p3, p4) => (p3 ? [p1, p2, p4] : [p1, p2]).join('-')
|
12
12
|
);
|
13
13
|
```
|
14
14
|
っていう関数 `replaceAddress(str)` を作っておけば
|
@@ -27,4 +27,4 @@
|
|
27
27
|
"新宿区西新宿2丁目8番" "新宿区西新宿2-8"
|
28
28
|
|
29
29
|
|
30
|
-
???? [CodePenで動作確認](https://codepen.io/kilesa/pen/
|
30
|
+
???? [CodePenで動作確認](https://codepen.io/kilesa/pen/MWveQWV?editors=0012)
|
1
コード追加
answer
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
同じ結果になるとしても、
|
2
1
|
「なんかいかにも正規表現(だったりreplaceだったり)を使いこなせてる風」なコードにしたいの?
|
3
|
-
|
4
2
|
であれば、`replace()` の
|
5
3
|
- 第1引数に渡す正規表現で、丸かっこ(キャプチャ)を使う。
|
6
4
|
- 第2引数には関数を渡せる。
|
@@ -9,8 +7,8 @@
|
|
9
7
|
|
10
8
|
```javascript
|
11
9
|
const replaceAddress = str => str.replace(
|
12
|
-
/(
|
10
|
+
/(\d+)丁目(\d+)番((\d+)号)?/,
|
13
|
-
(_, p1, p2, p3) => `${p1}-${p2}${p3 ? '-' +
|
11
|
+
(_, p1, p2, p3, p4) => `${p1}-${p2}${p3 ? '-' + p4 : ''}`
|
14
12
|
);
|
15
13
|
```
|
16
14
|
っていう関数 `replaceAddress(str)` を作っておけば
|
@@ -26,4 +24,7 @@
|
|
26
24
|
は、以下を出力します。
|
27
25
|
|
28
26
|
> "新宿区西新宿2丁目8番1号" "新宿区西新宿2-8-1"
|
29
|
-
"新宿区西新宿2丁目8番" "新宿区西新宿2-8"
|
27
|
+
"新宿区西新宿2丁目8番" "新宿区西新宿2-8"
|
28
|
+
|
29
|
+
|
30
|
+
???? [CodePenで動作確認](https://codepen.io/kilesa/pen/bGreaJB?editors=0012)
|