重複の可能性:
Javascript RegExpの興味深いテスト
正規表現テストでtrueとfalseのどちらかを判断できない(JavaScript)
問題の例。インラインで実行した場合、結果は私が期待するとおりです。ただし、変数として格納される場合は、ミドルスパン要素をスキップします。
// Inline RegExp
function getToggleClasses() {
var toggler = [],
elements = document.getElementsByTagName("*"),
i=0,
len = elements.length;
for (i; i < len; i++) {
if (/toggler/g.test(elements[i].className)) {
toggler.push(elements[i]);
}
}
document.getElementById('results').innerHTML += "<br />Inline: " + toggler.length;
}
// Variable
function getToggleClasses2() {
var toggler = [],
elements = document.getElementsByTagName("*"),
tester = /toggler/g,
i=0,
len = elements.length;
for (i; i < len; i++) {
if (tester.test(elements[i].className)) {
toggler.push(elements[i]);
}
}
document.getElementById('results').innerHTML += "<br />Variable: " + toggler.length;
}
マークアップ:
<span class="toggler">A</span>
<span class="toggler">B</span>
<span class="toggler">C</span>
与えられた:私は、この比較を行うためにRegExpを使用する理由がないことを理解しています。また、jQueryなどのライブラリがどれほど優れているかも理解しています。g
この場合、は必要ないことも知っています。
これらの2つのメソッドが異なる結果を返す必要がある理由を理解できません。