Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2013, 16:25
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

транслит и ники
<html>
   <head>
      <meta charset="utf-8" />
   </head>
   <body>
      <table>
         <td style="width:100%;">
            <input maxlength="256" style="width:100%;" id="Inp" type="text" />
         </td>
         <td>
            <input style="cursor:pointer;" type="button" value="Транслит" id="tr" />
         </td>
      </table>
      <script type="text/javascript">
         var lit_eng = Array(/e'/g, /E'/g, /sh/g, /sch/g, /zh/g, /ch/g, /ya/g, /ja/g, /ye/g, /je/g,
         	/yu/g, /ju/g, /yo/g, /jo/g, /y/g, /j/g, /u/g, /k/g,
         	/e/g, /n/g, /g/g, /z/g, /h/g, /#/g, /f/g, /v/g,
         	/a/g, /p/g, /r/g, /o/g, /l/g, /d/g, /s/g,
         	/m/g, /i/g, /t/g, /'/g, /b/g, /c/g, /SH/g, /SCH/g,
         	/YA/g, /JA/g, /ZH/g, /CH/g, /YE/g, /JE/g, /YU/g, /JU/g,
         	/YO/g, /JO/g, /Y/g, /J/g, /U/g, /K/g, /E/g, /N/g,
         	/G/g, /Z/g, /H/g, /F/g, /V/g, /A/g, /P/g,
         	/R/g, /O/g, /L/g, /D/g, /S/g, /M/g, /I/g,
         	/T/g, /B/g, /C/g);
         var lit_rus = Array("э", "Э", "ш", "щ", "ж", "ч", "я", "я", "е", "е",
         	"ю", "ю", "ё", "ё", "ы", "й", "у", "к",
         	"е", "н", "г", "з", "х", "ъ", "ф", "в",
         	"а", "п", "р", "о", "л", "д", "с",
         	"м", "и", "т", "ь", "б", "ц", "Ш", "Щ",
         	"Я", "Я", "Ж", "Ч", "Е", "Е", "Ю", "Ю",
         	"Ё", "Ё", "Ы", "Й", "У", "К", "Е", "Н",
         	"Г", "З", "Х", "Ф", "В", "А", "П",
         	"Р", "О", "Л", "Д", "С", "М", "И",
         	"Т", "Б", "Ц");
         
         document.getElementById('tr').onclick = function() {
         	var inp = document.getElementById('Inp');
         	var message = inp.value;
         	for (var i = 0; i < lit_eng.length; i++) {
         		message = message.replace(lit_eng[i], lit_rus[i]);
         	}
         	inp.value = message;
         	inp.focus();
         }
      </script>
   </body>
</html>


всем привет, это поле ввода для чата, в начале поля (по желанию) вводятся ники в квадратных [] и фигурных {} скобках, которым отправляется сообщение.

примерно вот так:
"{user1} [user2] [пользователь3] Vsem privet"

Нужно сделать скрипт транслита так, чтобы он переводил только сам текст, а ники оставлял в таком состоянии, какие они были изначально.

тоесть переводил только "Vsem privet", a "{user1} [user2] [пользователь3]" не трогал.
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2013, 17:30
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<html>
   <head>
      <meta charset="utf-8" />
   </head>
   <body>
      <table>
         <td style="width:100%;">"
{user1} [user2] [пользователь3] Vsem privet"
            <input maxlength="256" style="width:100%;" id="Inp" type="text" />
         </td>
         <td>
            <input style="cursor:pointer;" type="button" value="Транслит" id="tr" />
         </td>
      </table>
      <script type="text/javascript">

         
         	function replac(message) {
         var lit_eng = Array(/e'/g, /E'/g, /sh/g, /sch/g, /zh/g, /ch/g, /ya/g, /ja/g, /ye/g, /je/g,
         	/yu/g, /ju/g, /yo/g, /jo/g, /y/g, /j/g, /u/g, /k/g,
         	/e/g, /n/g, /g/g, /z/g, /h/g, /#/g, /f/g, /v/g,
         	/a/g, /p/g, /r/g, /o/g, /l/g, /d/g, /s/g,
         	/m/g, /i/g, /t/g, /'/g, /b/g, /c/g, /SH/g, /SCH/g,
         	/YA/g, /JA/g, /ZH/g, /CH/g, /YE/g, /JE/g, /YU/g, /JU/g,
         	/YO/g, /JO/g, /Y/g, /J/g, /U/g, /K/g, /E/g, /N/g,
         	/G/g, /Z/g, /H/g, /F/g, /V/g, /A/g, /P/g,
         	/R/g, /O/g, /L/g, /D/g, /S/g, /M/g, /I/g,
         	/T/g, /B/g, /C/g);
         var lit_rus = Array("э", "Э", "ш", "щ", "ж", "ч", "я", "я", "е", "е",
         	"ю", "ю", "ё", "ё", "ы", "й", "у", "к",
         	"е", "н", "г", "з", "х", "ъ", "ф", "в",
         	"а", "п", "р", "о", "л", "д", "с",
         	"м", "и", "т", "ь", "б", "ц", "Ш", "Щ",
         	"Я", "Я", "Ж", "Ч", "Е", "Е", "Ю", "Ю",
         	"Ё", "Ё", "Ы", "Й", "У", "К", "Е", "Н",
         	"Г", "З", "Х", "Ф", "В", "А", "П",
         	"Р", "О", "Л", "Д", "С", "М", "И",
         	"Т", "Б", "Ц");
         	  for (var i = 0; i < lit_eng.length; i++) {
         	     message = message.replace(lit_eng[i], lit_rus[i]);
         	  } return message;
         	}
         	function WrpMess(message,boundary) {
         	  message = message.replace(/\{([^\{\}]*)\}/ig,boundary+'{$1}'+boundary);
         	  message = message.replace(/\[([^\[\]]*)\]/ig,boundary+'[$1]'+boundary);
         	  return message;
         	}
         document.getElementById('tr').onclick = function() {
         	var inp = document.getElementById('Inp');
         	var message = inp.value;
         	var boundary = "===####$boundary$####===";	
         	message = WrpMess(message,boundary);
         	var messArr = message.split(boundary);
         	var str='';
         	for (var i=0; i < messArr.length; i++) {
         	  if(messArr[i]==WrpMess(messArr[i],'xxx')){messArr[i]=replac(messArr[i])};
         	  str+= messArr[i];
         	}
         	inp.value = str;
         	inp.focus();


         }
      </script>

   </body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2013, 20:18
Профессор
Отправить личное сообщение для Vampir3 Посмотреть профиль Найти все сообщения от Vampir3
 
Регистрация: 06.12.2011
Сообщений: 172

Deff, очередное спасибо всё как и хотел
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2013, 19:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Немного сократил код Deff,
...
<!DOCTYPE HTML>

<html>

<head>
  <title></title>
</head>

<body>
<html>
   <head>
      <meta charset="utf-8" />
   </head>
   <body>
      <table>
         <td style="width:100%;">"
{user1} [user2] [пользователь3] Vsem privet"
            <input maxlength="256" style="width:100%;" id="Inp" type="text" />
         </td>
         <td>
            <input style="cursor:pointer;" type="button" value="Транслит" id="tr" />
         </td>
      </table>
      <script type="text/javascript">


         	function replac(message) {
         var lit_eng = Array(/e'/g, /E'/g, /sh/g, /sch/g, /zh/g, /ch/g, /ya/g, /ja/g, /ye/g, /je/g,
         	/yu/g, /ju/g, /yo/g, /jo/g, /y/g, /j/g, /u/g, /k/g,
         	/e/g, /n/g, /g/g, /z/g, /h/g, /#/g, /f/g, /v/g,
         	/a/g, /p/g, /r/g, /o/g, /l/g, /d/g, /s/g,
         	/m/g, /i/g, /t/g, /'/g, /b/g, /c/g, /SH/g, /SCH/g,
         	/YA/g, /JA/g, /ZH/g, /CH/g, /YE/g, /JE/g, /YU/g, /JU/g,
         	/YO/g, /JO/g, /Y/g, /J/g, /U/g, /K/g, /E/g, /N/g,
         	/G/g, /Z/g, /H/g, /F/g, /V/g, /A/g, /P/g,
         	/R/g, /O/g, /L/g, /D/g, /S/g, /M/g, /I/g,
         	/T/g, /B/g, /C/g);
         var lit_rus = Array("э", "Э", "ш", "щ", "ж", "ч", "я", "я", "е", "е",
         	"ю", "ю", "ё", "ё", "ы", "й", "у", "к",
         	"е", "н", "г", "з", "х", "ъ", "ф", "в",
         	"а", "п", "р", "о", "л", "д", "с",
         	"м", "и", "т", "ь", "б", "ц", "Ш", "Щ",
         	"Я", "Я", "Ж", "Ч", "Е", "Е", "Ю", "Ю",
         	"Ё", "Ё", "Ы", "Й", "У", "К", "Е", "Н",
         	"Г", "З", "Х", "Ф", "В", "А", "П",
         	"Р", "О", "Л", "Д", "С", "М", "И",
         	"Т", "Б", "Ц");
         	  for (var i = 0; i < lit_eng.length; i++) {
         	     message = message.replace(lit_eng[i], lit_rus[i]);
         	  } return message;
         	}

            document.getElementById('tr').onclick = function() {
         	var inp = document.getElementById('Inp');
         	var message = inp.value;
            var reg = message.split(/\u005B[^\u005D]*\u005D|\u007B[^\u007D]*\u007D/).pop();
            reg = new RegExp(reg+"\$");
            var str  =  message.replace(reg,function (a){return replac(a)})
            inp.value = str;
         	inp.focus();


         }
      </script>

   </body>
</html>

</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 27.01.2013, 19:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

рони,
Не катит при произвольной установки ников и транслит фраз
" Vsem privet"{user1} Vsem privet"[user2] Vsem privet"[пользователь3] Vsem privet"
Ответить с цитированием
  #6 (permalink)  
Старый 27.01.2013, 19:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Deff,
Сообщение от Vampir3
в начале поля (по желанию) вводятся ники
условия задачи соблюдены
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надежный двухсторонний транслит vaalsh Общие вопросы Javascript 13 18.02.2018 19:56
Транслит с кириллицы на латиницу Beba Events/DOM/Window 3 03.11.2009 15:54