помогите начинающему!
осваиваю js поэтому не судите строго :) имею такой документ, в аптане все работает, но стоит загрузить страничку в браузер (мозила)- все идет крахом! не работает так, как надо! а в гугл хром вообще даже не запускается. сия идея в том, чтобы указанные буквы менялись на указанные цифры. в чем ошибка?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=uft-8"> <script language="JavaScrypt" type="text/javascript"> function perevod() { var slovo = document.mail.vvod.value; var а = /а/gi; var б=/б/gi; var в=/в/gi; var г=/г/gi; var д=/д/gi; var е=/е/gi; var ж=/ж/gi; var з=/з/gi; var и=/и/gi; slovo = slovo.replace(а, "13."); slovo = slovo.replace(б, "44."); slovo = slovo.replace(в, "25."); slovo = slovo.replace(г, "23."); slovo = slovo.replace(д, "152."); slovo = slovo.replace(е, "77."); slovo = slovo.replace(ж, "154."); slovo = slovo.replace(з, "220."); slovo = slovo.replace(и, "432."); document.write(slovo); } function reperevod() { var slovo = document.mail.vvod.value; var aa = /13./gi; var bb=/44./gi; var v=/25./gi; var g=/23./gi; var d=/152./gi; var e=/77./gi; var zh=/154./gi; var z=/220./gi; var i=/432./gi; slovo = slovo.replace(aa,"а"); slovo = slovo.replace(bb,"б"); slovo = slovo.replace(v,"в"); slovo = slovo.replace(g,"г"); slovo = slovo.replace(d,"д"); slovo = slovo.replace(e,"е"); slovo = slovo.replace(zh,"ж"); slovo = slovo.replace(z,"з"); slovo = slovo.replace(i,"и"); document.write(slovo); } </script> </head> <body> <form name="mail"> <input type="text" name="vvod"> <input type="button" value="replace" onclick="perevod()"> <input type="button" value="rereplace" onclick="reperevod()"> </form> </body> </html> |
разобрался! :) проблема с кодировкой. этот документ открыл в блокноте, поменял кодировку на windows-1251 и сохранил конец как windows (у меня линукс). но теперь другой вопрос: как можно весь этот код упростить?
|
String.prototype.replaceMap = function (data) { var result = this; for (var i in data) if (data.hasOwnProperty(i)) result = result.replace(new RegExp(i, "gi"), data[i]); return result; }; var a = "абв"; a = a.replaceMap({ "а" : "1", "б" : "2", "в" : "3" }); alert(a); |
Накой огород городить?
function replace(str,dic,regexp){ return str.replace( regexp||/./g , function(a){return dic[a]||a} ) } var down={ '13.':'a', '44.':'б', '25.':'в', '152.':'д', '77.':'е', '154.':'ж', '220.':'з', '432.':'и' }; var up={}; for(var i in down)up[down[i]]=i; //можно и вручную - мне лень было писать. var string='девиз'; alert(string); string = replace(string,up); alert(string); string = replace(string,down,/\d+\./g); alert(string); |
да.... познаний мне и познаний....спасибо вам конечно, только понимаю я суть написанного с трудом :) чайник я еще. буду совершенствоваться дальше. а как сии функции прикрутить к кнопке? и чтоб обратно раскодировать?
|
onclick(нужная_функция_для_выз ва();)
только если ты меняешь буквы по клику то тебе нужно указывать где именно ты собираешься менять эти буквы. то есть используешь тот же document.getElementById('div_elem') в которой записана строчка с буквами и в ней делаешь replace |
Часовой пояс GMT +3, время: 08:16. |