グローバルフラグと大文字と小文字を区別しないフラグを使用すると、この正規表現の問題は何ですか?クエリーはユーザが生成した入力です。結果は[真、真]でなければなりません。グローバルフラグ付きRegExpで間違った結果が得られるのはなぜですか?
var query = 'Foo B';
var re = new RegExp(query, 'gi');
var result = [];
result.push(re.test('Foo Bar'));
result.push(re.test('Foo Bar'));
// result will be [true, false]
var reg = /^a$/g;
for(i = 0; i++ < 10;)
console.log(reg.test("a"));
JavaScriptのRegExpの多くのトラップの1つにようこそ。それは私が今までに会ったことのない正規表現の処理のための最悪のインターフェースの1つを持ち、奇妙な副作用とあいまいな警告がいっぱいです。正規表現を使用して一般的に行う一般的な作業のほとんどは、正しく綴りにくいです。 – bobince
XRegExpは良い選択肢のようです。 http://xregexp.com/ – about
こちらの回答もご覧ください:http://stackoverflow.com/questions/604860/interesting-test-of-javascript-regexp – Prestaul