Переводчик слов
люди пожалуйста вы бы не могли дать простейший переводчик слов допустим человек написал 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, время: 01:33. |