Поиск подстроки с Е и Ё без regexp?
Нужно найти подстроку sub в строке str без учёта "е" и "ё". Т.е. "вертолёт" найдёт "вертолет" и наоборот. Сейчас использую regexp.
var reg = new RegExp(sub.replace(/[её]/g, "[её]")); // Заменяю буквы "е" и "ё" на [её], формирую регулярное выражениеА потом этим регулярным выражением ищу совпадение в строке reg.test(str);Вопрос: можно ли сделать без regexp? Там же получается сложная штука: букв "е" и "ё" в слове может быть несколько, т.е. куча вариантов может быть. :blink: ps пока писал кажись додумался, можно же на "е" заменить все "ё" в строке и подстроке! :) |
Рекомендую нормализовать в 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 |
Octane,
Спасибо, теперь я ещё больше боюсь всех этих кодировок :blink: |
Часовой пояс GMT +3, время: 17:43. |