26.01.2013, 16:25
|
Профессор
|
|
Регистрация: 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]" не трогал.
Спасибо
|
|
26.01.2013, 17:30
|
без статуса
|
|
Регистрация: 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>
|
|
26.01.2013, 20:18
|
Профессор
|
|
Регистрация: 06.12.2011
Сообщений: 172
|
|
Deff, очередное спасибо всё как и хотел
|
|
27.01.2013, 19:20
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Немного сократил код 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>
|
|
27.01.2013, 19:23
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
рони,
Не катит при произвольной установки ников и транслит фраз
" Vsem privet"{user1} Vsem privet"[user2] Vsem privet"[пользователь3] Vsem privet"
|
|
27.01.2013, 19:26
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,127
|
|
Deff,
Сообщение от Vampir3
|
в начале поля (по желанию) вводятся ники
|
условия задачи соблюдены
|
|
|
|