回答編集履歴
1
携帯電話番号の書式に対応
answer
CHANGED
@@ -4,27 +4,33 @@
|
|
4
4
|
|
5
5
|
- [RegExp - JavaScript | MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp)
|
6
6
|
|
7
|
-
### 国内の電話番号
|
7
|
+
### 国内の電話番号フォーマット
|
8
8
|
|
9
9
|
総務省に国内の電話番号書式の説明があります。
|
10
10
|
|
11
11
|
- [Q2 市外局番・市内局番とはどのようなものですか? - 総務省|電気通信番号の利用・指定|電話番号に関するQ&A](http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a.html#q2)
|
12
|
+
- [Q5 携帯電話やPHSに電話するには? - 総務省|電気通信番号の利用・指定|電話番号に関するQ&A](http://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/q_and_a.html#q5)
|
12
13
|
|
13
14
|
```JavaScript
|
14
|
-
|
15
|
+
function findTelNumberAll (string) {
|
15
|
-
|
16
|
+
var tel = string.match(/0(?:\d[(-]?\d{4}|(?![789]0)\d{2}[(-]?\d{3}|\d{3}[(-]?\d{2}|\d{4}[(-]?\d|[789]0[(-]?\d{4})[)-]?\d{4}(?!\d)/g);
|
16
17
|
|
17
|
-
if (tel) {
|
18
|
-
tel = tel.reduce(function (array, tel) {
|
19
|
-
tel = tel.replace(/[()-]/g, '');
|
20
|
-
if (tel.length === 10) {
|
21
|
-
|
18
|
+
return tel ? tel : [];
|
22
|
-
|
19
|
+
}
|
23
20
|
|
24
|
-
|
21
|
+
var targetString = ['<tag>東京都千代田何処其処1-2-12</tag>',
|
22
|
+
'<tag>0120-111-2222</tag>', // 誤
|
23
|
+
'<tag>03(4444)5555</tag>', // 正
|
24
|
+
'<tag>0120-12-4567</tag>', // 正
|
25
|
+
'<tag>045-987-6543</tag>', // 正
|
26
|
+
'<tag>01234-5-6789</tag>', // 正
|
27
|
+
'<tag>070-1111-2222</tag>', // 正
|
28
|
+
'<tag>080-1111-2222</tag>', // 正
|
29
|
+
'<tag>090-1111-2222</tag>', // 正
|
30
|
+
'<tag>090-111-2222</tag>', // 誤
|
25
|
-
|
31
|
+
'<tag>なにがしか</tag>'].join();
|
32
|
+
|
26
|
-
|
33
|
+
console.log(JSON.stringify(findTelNumberAll(targetString))); // ["03(4444)5555","0120-12-4567","045-987-6543","01234-5-6789","070-1111-2222","080-1111-2222","090-1111-2222"]
|
27
|
-
}
|
28
34
|
```
|
29
35
|
|
30
36
|
### 0120-111-2222
|
@@ -36,4 +42,8 @@
|
|
36
42
|
console.log(/[0-9()-]{10,11}/.exec('0120-111-2222')[0]);
|
37
43
|
```
|
38
44
|
|
45
|
+
### 更新履歴
|
46
|
+
|
47
|
+
- 2017/04/25 13:54 携帯電話番号の書式に対応
|
48
|
+
|
39
49
|
Re: KenKimura さん
|