Транслитерация для семантических URL на JavaScript

Пример реализации транслитерации для ЧПУ.

var transliterateToUrl = function (text) {
    return text.replace(/([а-яё])|([\s_-])|([^a-z\d])/gi,
        function (all, ch, space, words, i) {
            if (space || words) {
                return space ? '-' : '';
            }
            var code = ch.charCodeAt(0),
                index = code == 1025 || code == 1105 ? 0 :
                    code > 1071 ? code - 1071 : code - 1039,
                t = ['yo', 'a', 'b', 'v', 'g', 'd', 'e', 'zh',
                    'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p',
                    'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh',
                    'shch', '', 'y', '', 'e', 'yu', 'ya'
                ];
            return t[index];
        }).toLowerCase();
};

 

Например, можно использовать следующим образом:

$titleInput.on("keyup", function(){
    $urlInput.val( transliterateToUrl(this.value) );
});

 

Демо

 

 

Теги: JavaScript, hint

Комментарии (0)