知りたいこと
正規表現がうまくいかない原因が知りたいです。
詳細
JavaScriptで正規表現を利用し、下記の書き方をするとうまくいきませんでした。
NGコード
引数bの結果が、true
のはずなのにfalse
になってしまいました。
JavaScript
1function myFunc1(a, b) { 2 let regex = new RegExp(/^[0-9.]+$/, 'g'); 3 // または、let regex = /^[0-9.]+$/g; 4 5 console.log(regex.test(a), regex.test(b)); 6} 7 8myFunc1('1.88', '60'); 9// ↑期待する結果:true, true 10// ↑実際の結果:true, false
OKコード
正規表現を変数に格納するのをやめ、わざわざ2度記述したらうまくいきました。
JavaScript
1function myFunc2(a, b) { 2 console.log(/^[0-9.]+$/g.test(a), /^[0-9.]+$/g.test(b)); 3} 4 5myFunc2('1.88', '60'); 6// ↑期待する結果:true, true 7// ↑実際の結果:true, true
どうしてこのようなことが起こるのでしょうか?
同じ正規表現を2回も書くのはあまりよくないかと思い、変数に格納して使いまわしたら効率的なのでは?と思ったのですがうまくいかず不思議に思っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/05 01:32 編集