Показать сообщение отдельно
  #13 (permalink)  
Старый 16.07.2017, 15:45
Новичок на форуме
Отправить личное сообщение для Vlad Cheater Посмотреть профиль Найти все сообщения от Vlad Cheater
 
Регистрация: 16.07.2017
Сообщений: 1

Привет из 2017)
Вот мой вариант транслита

Добавил возможность не переводить текст между двумя символами (например [])

//Пример:

function translit(text, engToRus, replace){
 var
  rus = "щшчцюяёжъыэабвгдезийклмнопрстуфхь".split(""),
  eng = "shh sh ch cz yu ya yo zh `` y' e` a b v g d e z i j k l m n o p r s t u f x `".split(" ")
  for(var x = 0; x < rus.length; x++){
  text = text.split(engToRus ? eng[x] : rus[x]).join(engToRus ? rus[x] : eng[x]);
   text = text.split(engToRus ? eng[x].toUpperCase() : rus[x].toUpperCase()).join(engToRus ? rus[x].toUpperCase() : eng[x].toUpperCase()); 
 }
 if(replace){
   r = replace.split(",")
   try{
     pr =  new RegExp("([^\\"+r[0]+"]+)(?=\\"+r[1]+")","g")
      text.match(pr).forEach(function(i){
        text=text.split(r[0]+i+r[1]).join(translit(i, engToRus ? "" : true))
     })
   }catch(e){}
 }
  return text;
}

//с английского на русский 
alert(translit("text", true))
//тоже самое, но без перевода того, что написано в [  ]
alert(translit("text [text]", true, "[,]"))

//с русского на английский
alert(translit("текст"))
//тоже самое, но без перевода того, что написано в {[}  {]}
alert(translit("текст {[}текст{]}", true, "{[},{]}"))

Последний раз редактировалось Vlad Cheater, 16.07.2017 в 15:50.
Ответить с цитированием