Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
транслятор на JS, не правилЬно переводит
 
Даров народец.. задача состоит  в следующем...
1. сздаем страницу с 2 текстовыми полями
2. в одно текст.поле вводим текст на кирилице, нажимаем на кнопку, получаем тот же текст, толЬко на латинице...
ДЛЯ ЭТОГО я решил:

1. создаю 2 массива
cir(кол-во эл-в) = New ARRAY
cir[0]="а"
cir[1]="б"
cir[2]="в"
...........
...........
("ь" "ъ" никак не обозначаю, т.к. сочетания "ль" "къ" "гь" дают нам сочетания "li" "ku" "gi")
.............

lat(кол-во эл-в)= New ARRAY
lat[0]="a"
lat[1]="b"
lat[2]="v"

2. создаю функцю
function cirTolat() {
var a = document.getElementById('area');
if(a) {
var let = a.value.split('');
for(var j = 0; j < let.length; j++) {
if(let[j] != ' ') {
for(var i = 0; i < cirilica.length; i++) {
 if(let[j] == cirilica[i]) {
  let[j] = latinica[i];
 }else if(let){
 for(let[j] = ){
a=a.replace(cirilica[k], latinica[k])

}
}
}
document.getElementById('area2').value=let.join('');
}
}

// сочетания "ль" "къ" "гь" неправилЬно переводятца: "lь" "kъ" "gь" вместо "li" "ku" "gi" ну и т.д.

ситуюевину не смог исправить даже с помощю регулярных выражении..
ну никак не поддаетца (я не кодер, но столкнулся с проблемой)..

3 решил сделать по другому, т.е. создать 4 масиива, по принципу 2 массива, допустим cir1 и lat1 у меня содержат односимволЬные элементы, и 2 массива cir2 и lat2 содержат двухсимволЬные эл-ты:

1. создаю 4 массива
cir1(кол-во эл-в) = New ARRAY
cir1[0]="а"
cir1[1]="б"
cir1[2]="в"
...........
...........
...........

lat1(кол-во эл-в)= New ARRAY
lat1[0]="a"
lat1[1]="b"
lat1[2]="v"


cir2(кол-во эл-в) = New ARRAY
cir2[0]="ль"
cir2[1]="къ"
cir2[2]="гь"
...........
...........
...........

lat2(кол-во эл-в)= New ARRAY
lat2[0]="li"
lat2[1]="ku"
lat2[2]="gi"

2. ну и оброботчик-функцию..
function cirTolat() {
var a = document.getElementById('area').value;
if(a) {
for(var k = 1; k < cirilica2.length; k++){
a=a.replace(cirilica2[k], latinica2[k])
for(var k = 0; k < cirilica.length; k++){
a=a.replace(cirilica[k], latinica[k])
}
}
}
document.getElementById('area2').value=a;
}

но и это решение определенно не пашет..
народ поскажите че делать..
 
Я помоему уже дето тебе отписывал по этому поводу реально работающий кусок, тока без массивов и не на JS, а на VB (не суть важно, главное алгоритм)
Страницы: 1
Читают тему