Данное преобразование может пригодиться на тех ресурсах, где не поддерживается кириллица. И применений этому скрипту может быть великое множество.
Например, представьте, что пользователь вводит название 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 адресов. Пользователю достаточно вводить название на русском, а результат со второго поля в транслите мы можем спокойно добавить в БД.