Транслит своими руками на javascript и на php

Javascript

              function translit(varname){
// Символ, на который будут заменяться все спецсимволы
            var space = '-';
// Берем значение из нужного поля и переводим в нижний регистр
            var text = varname.toLowerCase();
// Массив для транслитерации
            var transl = {
                'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'e', 'ж': 'zh',
                'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n',
                'о': 'o', 'п': 'p', 'р': 'r','с': 's', 'т': 't', 'у': 'u', 'ф': 'f', 'х': 'h',
                'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh','ъ': space, 'ы': 'y', 'ь': space, 'э': 'e', 'ю': 'yu', 'я': 'ya',
                ' ': space, '_': space, '`': space, '~': space, '!': space, '@': space,
                '#': space, '$': space, '%': space, '^': space, '&': space, '*': space,
                '(': space, ')': space,'-': space, '=': space, '+': space, '[': space,
                ']': space, '\': space, '|': space, '/': space,'.': space, ',': space,
                '{': space, '}': space, ''': space, '"': space, ';': space, ':': space,
                '?': space, '<': space, '>': space, '№':space
            }
            var result = '';
            var curent_sim = '';
            for(i=0; i < text.length; i++) {
                // Если символ найден в массиве то меняем его
                if(transl[text[i]] != undefined) {
                    if(curent_sim != transl[text[i]] || curent_sim != space){
                        result += transl[text[i]];
                        curent_sim = transl[text[i]];
                    }
                }
                // Если нет, то оставляем так как есть
                else {
                    result += text[i];
                    curent_sim = text[i];
                }
            }
            result = TrimStr(result);
// Выводим результат
            return result;
        }
function TrimStr(s) {
            s = s.replace(/^-/, '');
            return s.replace(/-$/, '');
        }

Php

function translit($s) {
  $s = (string) $s; // преобразуем в строковое значение
  $s = strip_tags($s); // убираем HTML-теги
  $s = str_replace(array("n", "r"), " ", $s); // убираем перевод каретки
  $s = preg_replace("/s+/", ' ', $s); // удаляем повторяющие пробелы
  $s = trim($s); // убираем пробелы в начале и конце строки
  $s = function_exists('mb_strtolower') ? mb_strtolower($s) : strtolower($s); // переводим строку в нижний регистр (иногда надо задать локаль)
  $s = strtr($s, array('а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d','е'=>'e','ё'=>'e','ж'=>'j','з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=>'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shch','ы'=>'y','э'=>'e','ю'=>'yu','я'=>'ya','ъ'=>'','ь'=>''));
  $s = preg_replace("/[^0-9a-z-_ ]/i", ", $s); // очищаем строку от недопустимых символов
  $s = str_replace(" ", "-", $s); // заменяем пробелы знаком минус
  return $s; // возвращаем результат
}
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

СТАТЬИ БЛОГА ПО РУБРИКЕ И МЕТКАМ

img

Массивы java

задать одномерный массив int[] series = {4,2}; добавить элемент в массив c помощью series = addElement(series, 3); series = addElement(series, 1); Но это не работает, в Java нужно использовать коллекции для подобного добавления новых элементов […]

Массивы java

задать одномерный массив int[] series = {4,2}; добавить элемент в массив c помощью series = addElement(series, 3); series = addElement(series, 1); Но это не работает, в Java нужно использовать коллекции для подобного добавления новых элементов […]
img

Часто использую в javascript

Работа со строками Поиск позиции вхождения подстроки в строке Расщепить строку на элементы Работа с типами данных Проверить переменная массив — да-нет? Проверить есть ли в переменной что-нибудь или она типа object Работа с массивами […]

Часто использую в javascript

Работа со строками Поиск позиции вхождения подстроки в строке Расщепить строку на элементы Работа с типами данных Проверить переменная массив — да-нет? Проверить есть ли в переменной что-нибудь или она типа object Работа с массивами […]
img

Работа с датами php

date(‘Y-m-d’) — получить сегодняшнюю дату 2019-05-10 strtotime(date(‘Y-m-d’)); // — преобразовать в Unix формат date(‘Y-m-d’, 1552489683) — обратно из Unix в 2019-05-10 конверт в unix-формат и обратно http://i-leon.ru/tools/time Пример $this->data[‘created’] = date(‘Y-m-d H:i’, strtotime($article_info[‘created’]));

Работа с датами php

date(‘Y-m-d’) — получить сегодняшнюю дату 2019-05-10 strtotime(date(‘Y-m-d’)); // — преобразовать в Unix формат date(‘Y-m-d’, 1552489683) — обратно из Unix в 2019-05-10 конверт в unix-формат и обратно http://i-leon.ru/tools/time Пример $this->data[‘created’] = date(‘Y-m-d H:i’, strtotime($article_info[‘created’]));
img

Часто использую в javascript

Работа со строками Поиск позиции вхождения подстроки в строке Расщепить строку на элементы Работа с типами данных Проверить переменная массив — да-нет? Проверить есть ли в переменной что-нибудь или она типа object Работа с массивами […]

Часто использую в javascript

Работа со строками Поиск позиции вхождения подстроки в строке Расщепить строку на элементы Работа с типами данных Проверить переменная массив — да-нет? Проверить есть ли в переменной что-нибудь или она типа object Работа с массивами […]
img

Работа с датами php

date(‘Y-m-d’) — получить сегодняшнюю дату 2019-05-10 strtotime(date(‘Y-m-d’)); // — преобразовать в Unix формат date(‘Y-m-d’, 1552489683) — обратно из Unix в 2019-05-10 конверт в unix-формат и обратно http://i-leon.ru/tools/time Пример $this->data[‘created’] = date(‘Y-m-d H:i’, strtotime($article_info[‘created’]));

Работа с датами php

date(‘Y-m-d’) — получить сегодняшнюю дату 2019-05-10 strtotime(date(‘Y-m-d’)); // — преобразовать в Unix формат date(‘Y-m-d’, 1552489683) — обратно из Unix в 2019-05-10 конверт в unix-формат и обратно http://i-leon.ru/tools/time Пример $this->data[‘created’] = date(‘Y-m-d H:i’, strtotime($article_info[‘created’]));
img

Пространство имен php

Чтобы задать пространство имен если хотим обратиться к классу из другого namespace тогда пишем обязательно вначале ставим косую черту, иначе интерпретатор подумает что это относительная ссылка и выдваст фатальную ошибку, потому что класса не окажется […]

Пространство имен php

Чтобы задать пространство имен если хотим обратиться к классу из другого namespace тогда пишем обязательно вначале ставим косую черту, иначе интерпретатор подумает что это относительная ссылка и выдваст фатальную ошибку, потому что класса не окажется […]
img

Использование php по назначению

Работа с массивами функция count — посчитать размер массива Работа со строками удалить слеш с конца строки. Подсказка https://phpclub.ru/talk/threads/%D0%9F%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5-%D0%BE%D1%82%D1%80%D0%B5%D0%B7%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0.74618/ explode(‘,’,string) — разбить строку с разделителем «,» на массив элементов подробнее о html_entity_decode и htmlentities Работа […]

Использование php по назначению

Работа с массивами функция count — посчитать размер массива Работа со строками удалить слеш с конца строки. Подсказка https://phpclub.ru/talk/threads/%D0%9F%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5-%D0%BE%D1%82%D1%80%D0%B5%D0%B7%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82-%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0.74618/ explode(‘,’,string) — разбить строку с разделителем «,» на массив элементов подробнее о html_entity_decode и htmlentities Работа […]
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x