[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Класс транслитерации
Pulse
Существуют ли готовые классы для транслитерации строк. Заранее благодарен, если кто-то встречал и поделиться линком или кодом!



Спустя 6 минут, 35 секунд (14.11.2011 - 17:04) Игорь_Vasinsky написал(а):
не видел, но есть функции самописные - сделать класс - без проблем. Но зачем чесно слово не понимаю, тока из-за того что весь проект на ООП?

Спустя 39 секунд (14.11.2011 - 17:04) Zerstoren написал(а):
На php

    function transliteration($str) {
$r_trans = Array(
"А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М",
"Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Э",
"Ю","Я","Ъ","Ы","Ь",
"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м",
"н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","э",
"ю","я","ъ","ы","ь"," ",",","-","(",")",".","?","!",":","\"","'","=","\\","/");

$e_trans = Array(
"a","b","v","g","d","e","e","j","z","i","i","k","l","m",
"n","o","p","r","s","t","u","f","h","cz","ch","sh","sch",
"e","yu","ya","","i","",
"a","b","v","g","d","e","e","j","z","i","i","k","l","m",
"n","o","p","r","s","t","u","f","h","c","ch","sh","sch",
"e","yu","ya","","i","","-","-","-","-","-","-","","","-","","","","","");

$str = strtolower( str_replace($r_trans, $e_trans, $str) );
$str = preg_replace('~([\-]+)~','-',$str);

$str = preg_replace('~([^a-z0-9\-])~','',$str);
return $str;
}


На JavaScript

transliteration = function(str){
var h1 = str;
var r_trans = new Array(
"А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М",
"Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Э",
"Ю","Я","Ъ","Ы","Ь",
"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м",
"н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","э",
"ю","я","ъ","ы","ь"," ",",","-","(",")",".","?","!",":");

var e_trans = new Array(
"a","b","v","g","d","e","e","j","z","i","i","k","l","m",
"n","o","p","r","s","t","u","f","h","cz","ch","sh","sch",
"e","yu","ya","","i","",
"a","b","v","g","d","e","e","j","z","i","i","k","l","m",
"n","o","p","r","s","t","u","f","h","c","ch","sh","sch",
"e","yu","ya","","i","","-","-","-","","","","","","-");
returned='';
var word = new Array();
var o=0;
for(var i=0;i < h1.length;i++) {
o++;
word[i] = h1.substring(i,o);

for(var y=0;y<e_trans.length;y++){
if(word[i] == r_trans[y]) {
returned += word[i].replace(r_trans[y],e_trans[y]);
var orly = true;
}
}


if(orly == true){
orly='';
} else {
returned += word[i];
orly='';
}
}


for(var g = 0; g<10; g++) {
returned = returned.replace('--','-');
}

return returned;
}

Спустя 8 минут, 34 секунды (14.11.2011 - 17:13) Pulse написал(а):
Игорь_Vasinsky
Ну суть не столь важна, достаточно и просто готовой функции, портировать в существующий класс не проблема. Искал просто готовое решение, чтобы не придумывать велосипед, поэтому выразился как класс. smile.gif
Zerstoren
Спасибо большое, этого более, чем достаточно!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.