Начиная с Firefox 4, вы не можете использовать RegExp в качестве условия цикла, потому что для каждой итерации будет создаваться новый экземпляр, вызывая бесконечный цикл. (lastIndex = 0)
while (/.../g.exec("...")) { // used to work
/* your code goes here */
}
Чтобы этого не происходило, создайте отдельную переменную с RegExp:
var re = /.../g;
while (re.exec("...")) { // works perfectly
/* your code goes here */
}