Рекомендую нормализовать в Unicode NFC обе строки, в браузерах, которые поддерживают normalize:
str = str.normalize('NFC');
Иначе скопированный из какой-нибудь OSX текст может оказаться в Unicode NFD, и буква ё будет состоять из 2х символов
\u0435\u0308
alert('\u0435\u0308'); // ё
alert(/ё/.test('\u0435\u0308')); // false
alert(/ё/.test('\u0435\u0308'.normalize())); // true
Unicode Normalization Forms