回答編集履歴

1

追記

2018/03/08 09:28

投稿

yambejp
yambejp

スコア114845

test CHANGED
@@ -1,3 +1,33 @@
1
1
  g修飾子を外してみてはどうですか?
2
2
 
3
3
  (そもそも機能を使ってないですし)
4
+
5
+
6
+
7
+ # 原因
8
+
9
+ [RegExp.prototype.test()](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test)に記載されているように
10
+
11
+
12
+
13
+ > test() が同じグローバル正規表現インスタンスで複数回呼び出されると、前回のマッチの先に進むことになります。
14
+
15
+
16
+
17
+ に合致しているのだと思います
18
+
19
+
20
+
21
+ ```javascript
22
+
23
+ var reg_Hs = new RegExp("[ -~。-゚]","g");
24
+
25
+ for(var i=0;i<20;i++){
26
+
27
+ console.log(reg_Hs.test("testあああ"));
28
+
29
+ }
30
+
31
+ ```
32
+
33
+ 「test」の4文字目までチェックしてその後5文字目チェックでfalseを返す