回答編集履歴

2

コード追加

2021/10/19 17:28

投稿

退会済みユーザー
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  /(\d+)丁目(\d+)番((\d+)号)?/,
20
20
 
21
- (_, p1, p2, p3, p4) => `${p1}-${p2}${p3 ? '-' + p4 : ''}`
21
+ (_, p1, p2, p3, p4) => (p3 ? [p1, p2, p4] : [p1, p2]).join('-')
22
22
 
23
23
  );
24
24
 
@@ -56,4 +56,4 @@
56
56
 
57
57
 
58
58
 
59
- ???? [CodePenで動作確認](https://codepen.io/kilesa/pen/bGreaJB?editors=0012)
59
+ ???? [CodePenで動作確認](https://codepen.io/kilesa/pen/MWveQWV?editors=0012)

1

コード追加

2021/10/19 17:28

投稿

退会済みユーザー
test CHANGED
@@ -1,8 +1,4 @@
1
- 同じ結果になるとしても、
2
-
3
1
  「なんかいかにも正規表現(だったりreplaceだったり)を使いこなせてる風」なコードにしたいの?
4
-
5
-
6
2
 
7
3
  であれば、`replace()` の
8
4
 
@@ -20,9 +16,9 @@
20
16
 
21
17
  const replaceAddress = str => str.replace(
22
18
 
23
- /([0-9]+)丁目([0-9]+)番([0-9]+)?号?/,
19
+ /(\d+)丁目(\d+)番((\d+)号)?/,
24
20
 
25
- (_, p1, p2, p3) => `${p1}-${p2}${p3 ? '-' + p3 : ''}`
21
+ (_, p1, p2, p3, p4) => `${p1}-${p2}${p3 ? '-' + p4 : ''}`
26
22
 
27
23
  );
28
24
 
@@ -55,3 +51,9 @@
55
51
  > "新宿区西新宿2丁目8番1号" "新宿区西新宿2-8-1"
56
52
 
57
53
  "新宿区西新宿2丁目8番" "新宿区西新宿2-8"
54
+
55
+
56
+
57
+
58
+
59
+ ???? [CodePenで動作確認](https://codepen.io/kilesa/pen/bGreaJB?editors=0012)