var x = '1',
times = 10000,
start1 = +new Date();
for (var i=0; i<times; i++) {
if (x == 'a' || x == 'b' || x == 'c') {
}
}
var time1 = +new Date() - start1,
start2 = +new Date();
for (var i=0; i<times; i++) {
if (x.match(/^(?:a|b|c)$/)) {
}
}
var time2 = +new Date() - start2;
console.log(time1, time2)
x
будет равно 'a'
, то каждый раз будет будет проверяться только x == 'a'
и тогда первый вариант проходит за 25-35 мс. Т.е. в данном конкретном примере выигрывают регекспы.return /^[0-9a-z_\.]+@[0-9a-z_\^\.]+\.[a-z]{2,6}$/i.test(s);