Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите начинающему! (https://javascript.ru/forum/misc/15886-pomogite-nachinayushhemu.html)

severmsk 17.03.2011 18:51

помогите начинающему!
 
осваиваю 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>

severmsk 17.03.2011 19:16

разобрался! :) проблема с кодировкой. этот документ открыл в блокноте, поменял кодировку на windows-1251 и сохранил конец как windows (у меня линукс). но теперь другой вопрос: как можно весь этот код упростить?

Matre 17.03.2011 19:31

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);

Aetae 17.03.2011 19:59

Накой огород городить?

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);

severmsk 17.03.2011 20:15

да.... познаний мне и познаний....спасибо вам конечно, только понимаю я суть написанного с трудом :) чайник я еще. буду совершенствоваться дальше. а как сии функции прикрутить к кнопке? и чтоб обратно раскодировать?

розовый слоник 17.03.2011 20:56

onclick(нужная_функция_для_выз ва();)
только если ты меняешь буквы по клику то тебе нужно указывать где именно ты собираешься менять эти буквы.
то есть используешь тот же document.getElementById('div_elem')
в которой записана строчка с буквами и в ней делаешь replace


Часовой пояс GMT +3, время: 08:16.