- 1
- 2
- 3
- 4
- 5
- 6
var rus = new String("йцукенгшщзфывапролдячсмитьЙЦУКЕНГШЩЗФЫВАПРОЛДЯЧСМИТЬ");
var eng = new String("qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM");
for (var i in rus) {
reg = new RegExp(rus[i], 'g');
pass = pass.replace(reg, eng[i]);
}
mindfreakthemon 17.02.2010 22:53 # 0
ixth 17.02.2010 23:28 # 0
Можно все упростить и заюзать хэш, конечно. Я сильно неправ?
mindfreakthemon 17.02.2010 23:55 # +2
Этот способ достаточно быстр (при замене символа никакие методы не вызываются), хоть и памяти будет расходовать немного больше из-за хэша. (Но кого сейчас это волнует?)
ixth 18.02.2010 00:18 # 0
mindfreakthemon 18.02.2010 07:56 # −1
Но мы же знаем javascript..
guest 18.02.2010 11:59 # 0
r={}
for(var i = 0, array = []; i < 58; i++) r[rus[i]]= eng[i];
ixth 18.02.2010 21:50 # 0
m1el 19.02.2010 00:46 # +1
guest 17.02.2010 23:05 # 0
ixth 17.02.2010 23:22 # 0
guest 18.02.2010 00:12 # +1
guest 18.02.2010 01:35 # 0
ixth 18.02.2010 02:58 # 0
guest 18.02.2010 12:45 # +1
А самое интересное, что "ё" вашей регуляркой не ловится.
'йцукенЁЖ' - > 'qwertyЁundefined' нормально?
guest 18.02.2010 18:10 # 0
guest 18.02.2010 18:51 # 0
Судя по количеству и разнообразию велосипедов - нет.
HyperGeek 18.02.2010 19:52 # 0
guest 19.02.2010 14:55 # 0
http://obvcode.blogspot.com/2008/05/strtr-for-javascript.html
guest 19.02.2010 17:17 # 0
xXx_totalwar 19.02.2010 17:53 # 0
разные вещи какбэ