Javascript Regex Pitfall
This snippet shows how the test method of a RegExp object fails every time when the global modifier is specified.
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;