Данное преобразование может пригодиться на тех ресурсах, где не поддерживается кириллица. И применений этому скрипту может быть великое множество.
Например, представьте, что пользователь вводит название url или файла для скачки в кириллице там, где можно использовать только латинские символы. В этом случае в БД или программе могут быть ошибки. Но все равно мы можем дать возможность писать пользователю русскими символами, просто заменяя их на лету в латинские аналоги.
В данном примере вы увидите два поля, где в первом сможете писать на русском, а во втором получите результат в латинском аналоге.
Работает скрипт так. Сначала он определяет какая клавиша нажата, а затем заменяет ее на латинский алфавит.
- Пробел заменен знаком тире
- Твердый и мягкий знаки не используются
- Если введен непонятный символ, то он игнорируется
Если вы откроете код примера, то обратите внимание на строку:
return(ww.replace(/[^a-zA-Z0-9-]/g,’-‘).replace(/[-]{2,}/gim, ‘-‘).replace( /^-+/g, ”).replace( /-+$/g, ”));
Здесь replace(/[^a-zA-Z0-9-]/g,’-‘) – символы исключения, которые проходят без замены. Остальные символы либо заменяются на латинский алфавит, либо на знак –.
Чтобы замена неизвестного символа шла не на –, а на другой, допустим * – ставьте так: replace(/[^a-zA-Z0-9-]/g,’*‘)
Чтобы добавить в исключения символы пробел, ! и % измените код так: replace(/[^a-zA-Z0-9-s!%]/g,’-‘)
Скрипт идеально подходит для транслитерации url адресов. Пользователю достаточно вводить название на русском, а результат со второго поля в транслите мы можем спокойно добавить в БД.