помогите начинающему!
осваиваю 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, время: 03:07. |