回答編集履歴

3

検証コードを追記

2019/06/13 11:35

投稿

think49
think49

スコア18166

test CHANGED
@@ -62,11 +62,47 @@
62
62
 
63
63
 
64
64
 
65
+ ### 検証コード
66
+
67
+
68
+
69
+ ```JavaScript
70
+
71
+ 'use strict';
72
+
73
+ function notZero1 (string) { return /^(?!0+$)/.test(string); }
74
+
75
+ function notZero2 (string) { return /[^0]|^$/.test(string); }
76
+
77
+ function notZero3 (string) { return /[^0 ]|^$/.test(string); }
78
+
79
+ function notZero4 (string) { return /^(?![0 ]+$)/.test(string); }
80
+
81
+ function test (array, fn) { console.log(JSON.stringify(array.map(fn))); }
82
+
83
+
84
+
85
+ const array = ['010', '123', '000', '00 000 0000'];
86
+
87
+ test(array, notZero1); // [true,true,false,true]
88
+
89
+ test(array, notZero2); // [true,true,false,true]
90
+
91
+ test(array, notZero3); // [true,true,false,false]
92
+
93
+ test(array, notZero4); // [true,true,false,false]
94
+
95
+ ```
96
+
97
+
98
+
65
99
  ### 更新履歴
66
100
 
67
101
 
68
102
 
69
- - 2019/06/13 18:32 2,3番目の正規表現が期待通りに動作しない不具合を修正しました
103
+ - 2019/06/13 18:32 2,3番目の正規表現が期待通りに動作しない不具合を修正
104
+
105
+ - 2019/06/13 20:34 検証コードを追記
70
106
 
71
107
 
72
108
 

2

2,3番目の正規表現が期待通りに動作しない不具合を修正しました

2019/06/13 11:35

投稿

think49
think49

スコア18166

test CHANGED
@@ -1,3 +1,7 @@
1
+ ### 否定先読み
2
+
3
+
4
+
1
5
  > それ意外であればマッチ
2
6
 
3
7
 
@@ -14,13 +18,17 @@
14
18
 
15
19
 
16
20
 
21
+ ### 文字クラス rev1
22
+
23
+
24
+
17
25
  もしくは、**文字クラス**を使用して下さい。
18
26
 
19
27
 
20
28
 
21
29
  ```JavaScript
22
30
 
23
- /^[^0]*$/
31
+ /[^0]|^$/
24
32
 
25
33
  ```
26
34
 
@@ -29,6 +37,10 @@
29
37
  基本的に、正規表現で否定条件は、上述の2つ、**否定後読み**のいずれかを使用して作成します。
30
38
 
31
39
  http://js-next.hatenablog.com/entry/2015/11/20/083622
40
+
41
+
42
+
43
+ ### 文字クラス rev2
32
44
 
33
45
 
34
46
 
@@ -44,10 +56,18 @@
44
56
 
45
57
  ```JavaScript
46
58
 
47
- /^[^0 ]*$/
59
+ /[^0 ]|^$/
48
60
 
49
61
  ```
50
62
 
51
63
 
52
64
 
65
+ ### 更新履歴
66
+
67
+
68
+
69
+ - 2019/06/13 18:32 2,3番目の正規表現が期待通りに動作しない不具合を修正しました
70
+
71
+
72
+
53
73
  Re: akitomo さん

1

文字クラス、否定後読み

2019/06/13 09:33

投稿

think49
think49

スコア18166

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 否定先読みを使用して下さい。
5
+ **否定先読み**を使用して下さい。
6
6
 
7
7
 
8
8
 
@@ -14,4 +14,40 @@
14
14
 
15
15
 
16
16
 
17
+ もしくは、**文字クラス**を使用して下さい。
18
+
19
+
20
+
21
+ ```JavaScript
22
+
23
+ /^[^0]*$/
24
+
25
+ ```
26
+
27
+
28
+
29
+ 基本的に、正規表現で否定条件は、上述の2つ、**否定後読み**のいずれかを使用して作成します。
30
+
31
+ http://js-next.hatenablog.com/entry/2015/11/20/083622
32
+
33
+
34
+
35
+ > また、できればマッチしてほしくないのが、
36
+
37
+ > 「00000 0」「00000 0」「00000 0」「00000  0」
38
+
39
+
40
+
41
+ 前述の否定条件を文字クラスにして、「否定条件となる文字」を入れて下さい。
42
+
43
+
44
+
45
+ ```JavaScript
46
+
47
+ /^[^0 ]*$/
48
+
49
+ ```
50
+
51
+
52
+
17
53
  Re: akitomo さん