транслит и ники
<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]" не трогал. Спасибо |
<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> |
Deff, очередное спасибо;) всё как и хотел
|
Немного сократил код Deff,
... :write: <!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> |
рони,
:) Не катит при произвольной установки ников и транслит фраз " Vsem privet"{user1} Vsem privet"[user2] Vsem privet"[пользователь3] Vsem privet" |
Deff,
Цитата:
|
Часовой пояс GMT +3, время: 22:31. |