1// вступление
2String.prototype.RE = function() {
3 return this.replace(/([\$\^\*\(\)\+\[\]\-\{\}\|\.\/\?\\])/g, '\\$1');
4};
5String.prototype.KeybdConv = (function(){
6 var Table = {}, i, L, c,
7 en = 'qwertyuiop[]asdfghjkl;\'zxcvbnm,.QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>',
8 ru = 'йцукенгшщзхъфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ';
9 for (i = 0, L = en.length; i < L; i++) {
10 c = ru.charAt(i);
11 Table[Table[c] = en.charAt(i)] = c;
12 };
13
14 var F = function(a) {
15 return Table.hasOwnProperty(a) ? Table[a] : a;
16 };
17 var re = new RegExp("[" + en.RE() + ru.RE() + "]", "g");
18 return function() {
19 return this.replace(re, F);
20 };
21})();
22
23// пробуем
24var s = 'ghbdtn';
25alert(s); // ghbdtn
26s = s.KeybdConv();
27alert(s); // привет
28s = s.KeybdConv();
29alert(s); // ghbdtn
1function ruslat(str,mode) {
2 var lat=new Array("q","w","e","r","t" ...);
3 var rus=new Array("й","ц","у","к","е", ...);
4 var word=""
5 for (var i=0, L=str.length; i<L; i++) {
6 var letter=str[i]
7 if (mode=="lat") {
8 for (var j=0, L=rus.length; j<L; j++) {
9 if(rus[j]==letter) {word+=lat[j]}
10 }
11 }
12 if (mode=="rus") {
13 for (var j=0, L=rus.length; j<L; j++) {
14 if(lat[j]==letter) {word+=rus[j]}
15 }
16 }
17 }
18}
19alert(ruslat("qwe")) //Выдаст "йцу"