Переводчик слов
люди пожалуйста вы бы не могли дать простейший переводчик слов допустим человек написал ghbdtn-а ему скритп перевел привет..
|
<html>
<body>
<input id="enter" />
<input type="button" value="перевести" onclick="perevesti();" />
<br />
<input id="autput" />
<script>
MAP = {
'a' : 'ф',
'b' : 'и',
'c' : 'с',
'd' : 'в',
'e' : 'у',
'f' : 'а'
};
I = document.getElementById('enter');
O = document.getElementById('autput');
function perevesti() {
S = '';
for (var i = 0; i < I.value.length; i++)
{
CHAR = I.value.charAt(i);
LOWER = CHAR.toLowerCase();
if (CHAR == CHAR.toUpperCase())
UPPER = 1;
else
UPPER = 0;
S += LOWER in MAP ? MAP[CHAR.toLowerCase()][UPPER ? 'toUpperCase' : 'toString']() : CHAR;
}
O.value = S;
}
</script>
</body>
</html>
буквы заполните сами. они начинаються с 10-ая строки,разберетесь |
Matre,
Не обижайтесь, если вас конечно это обидит, но ваш код при первом впечатлении как будто был написан 10 лет назад да и причём на ассемблере. |
Skipp,
но всетаки положительные сдвиги есть =) |
Цитата:
var map = {
'a' : 'ф',
'b' : 'и',
'c' : 'с',
'd' : 'в',
'e' : 'у',
'f' : 'а'
},
input = document.getElementById('enter'),
output = document.getElementById('autput'),
upper;
function translate() {
var str = '';
for (var i = 0; i < input.value.length; i++) {
var char = input.value.charAt(i),
lower = char.toLowerCase();
upper = char == char.toUpperCase();
str += lower in map ? map[lower][upper ? 'toUpperCase' : 'toString']() : char;
}
output.value = str;
}
а так лутше? хотя назв переменых -не суть только неговорите что мой коод уг потом учто конструкция str += lower in map ? map[lower][upper ? 'toUpperCase' : 'toString']() : char; не читаема |
Цитата:
|
я так понимаю-это ирония?
а так: var appchar; if (lower in map) appchar = map[lower]; else appchar = char; if (upper) appchar = appchar.toUpperCase(); если нет-приведите свой вариант идеального кода он ведь у вас идеальный я уверен |
Matre, да это не ирония, наоборот говорю что грамотно использовал тернарный оператор.
|
Хмм, имхо - примерно так.
Вводить только слова в нижнем регистре).<br />
<input id="enter" />
<input type="button" value="перевести" />
<input id="autput" />
<script type="text/javascript">
var input=document.getElementsByTagName('input');
var q=' .,mnbvcxz\';lkjhgfdsa][poiuytrewq`ёйцукенгшщзхъфывапролджэячсмитьбю ',l=q.length-1;
input[1].onclick=function(){
input[2].value=input[0].value.replace(/./g,function(a){return q.charAt(l-q.indexOf(a))})
}
</script>
Естесно нужно разделить русское и буржуйское, replace делать по диапазону, добавить проверку на регистр итд. |
| Часовой пояс GMT +3, время: 13:28. |