Добрый день, нашел вот такую функцию для транслитерации символов с европейских языков на латиницу
https://gist.github.com/goliatone/173fb2b810a65d0c5cbc переделал его, чтобы понимал кириллицу
$(document).ready(function() {
var slug = function(str) {
str = str.replace(/^\s+|\s+$/g, ''); // trim
str = str.toLowerCase();
// remove accents, swap ñ for n, etc
var from =
'ãàáäâẽèéë
êìíïîõòóöôùú
üûñç·/_,:;абвгдеёзийклмнопрстуфхцэы';
var to = 'aaaaaeeeeeiiiiooooouuuunc------abvgdeeziyklmnoprstufhcey';
for (var i=0, l=from.length ; i<l ; i++) {
str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
}
str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
.replace(/\s+/g, '-') // collapse whitespace and replace by -
.replace(/-+/g, '-'); // collapse dashes
return str;
};
но проблема с буквами, которые в латинице состоят из нескольких букв (ж - zh, 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch', 'ю' => 'yu', 'я' => 'ya') пытался их через условие проверять но нечего не получилось, как сделать правильно, чтобы скрипт обрабатывал и такие буквы.
помогите пожалуйста.
ps. здесь на сайте европейские символы выделенные цветом переведены почему-то в ascii коды, поэтому для того, чтобы понять что на что меняется лучше смотреть с оригинала скрипта, мною дописаны буквы русского языка