行いたいこと
改行を含む文字列を改行でsplitし、正規表現に各行が一致しているかを判定したいです。
発生している問題
chromeのDevToolsから『該当のソースコード』にあるコード実行したところ、
正規表現リテラルを変数に入れてtestメソッドを実行した結果と
正規表現リテラルからtestメソッドを実行した結果が異なってしまいます。
なぜ、このような違いが発生するのかご存じの方がいらっしゃいましたら、
ご教示お願いいたします。
// 正規表現リテラルをいれた変数からtestメソッドを実行した場合 1. aaaaa:true 2. bbbbb:false 3. ccccc:true 4. ddddd:false 5. eeeee:true // 正規表現リテラルからtestメソッドを実行した場合 1. aaaaa:true 2. bbbbb:true 3. ccccc:true 4. ddddd:true 5. eeeee:true
該当のソースコード
var val = '1. aaaaa\n2. bbbbb\n3. ccccc\n4. ddddd\n5. eeeee'; var reg = /^\d{1,}. .*/g; val.split('\n').forEach((v) => { console.log(v + ':' + reg.test(v)); }); val.split('\n').forEach((v) => { console.log(v + ':' + /^\d{1,}. .*/g.test(v)); });
試したこと
以下のようにRegExpオブジェクトに変えてみましたが結果は変わりませんでした。
var reg = new RegExp('^\d{1,}\. .*', 'g');
補足情報(FW/ツールのバージョンなど)
Google Chrome
バージョン: 88.0.4324.150(Official Build) (64 ビット)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/21 12:56