Javascript Regex Pitfall

This snippet shows how the test method of a RegExp object fails every time when the global modifier is specified.

HTML

<div id="output" />

CSS

#output {
    width: 200px; 
    height: 325px;
}

JavaScript

var output = "";

var test = "a";
var regex = new RegExp(test, "gi");
for (var i=0; i < 10; i++) {
    output += regex + ".test('" + test + "') is " + regex.test(test) + "\n";
}
output += "\n";

test = "aaa";
for (var i=0; i < 10; i++) {
    output += regex + ".test('" + test + "') is " + regex.test(test) + "\n";
}
output += "\n";

test = "a";
var regex = new RegExp(test, "i");

for (var i=0; i < 10; i++) {
    output += regex + ".test('" + test + "') is " + regex.test(test) + "\n";
}
document.getElementById("output").innerText = output;