var ANSI = new Array();
var UNICODE = new Array();
for(var i = 178; i <= 252; i+=2){
ANSI.push(i); //mecatar ANSI
UNICODE.push(1328 + (i-176)/2); //mecatar Unicode
ANSI.push(i+1); //poqratar ANSI
UNICODE.push(1376 + (i-176)/2); //poqratar Unicode
}
ANSI.push(39); UNICODE.push(0x587); //ev
ANSI.push(183); UNICODE.push(8226); //poqratar g-n (bullet)
ANSI.push(8226); UNICODE.push(1379); //poqratar g-n (bullet)
ANSI.push(39); UNICODE.push(0x55A); //apostrophe
ANSI.push(176); UNICODE.push(0x55B); //shesht
ANSI.push(175); UNICODE.push(0x55C); //bacakanchakan
ANSI.push(170); UNICODE.push(0x55D); //but
ANSI.push(177); UNICODE.push(0x55E); //harcakan
ANSI.push(163); UNICODE.push(0x589); //verjaket
ANSI.push(173); UNICODE.push(0x58A); //hyphen
ANSI.push(167); UNICODE.push(0xAB); //bacvogh chakert
ANSI.push(166); UNICODE.push(0xBB); //pakvogh chakert
ANSI.push(171); UNICODE.push(0x2C); //storaket
ANSI.push(169); UNICODE.push(0x2E); //mijaket
ANSI.push(174); UNICODE.push(0x2026); //bazmaket
ANSI.push(0,0); UNICODE.push(0,0); //2 hat CUSTOM :)
// end
// правильно создаешь 2 массива
кусок заполняешь на циклом а кусок руками
push - добавление данных в массив с
увеличением размерности массива ну типа нашего redim (или сразу опиши массив
нужного размера)
function convert(from, to, A2U){
// если A2U - истина, то массив arrFrom
принимает значения из массива ANSI, если
ЛОЖЬ, то из массива UNICODE
arrFrom = A2U ? ANSI : UNICODE;
// если A2U - истина, то массив arrTo
принимает значения из массива UNICODE,
если ЛОЖЬ, то из массива ANSI
arrTo = A2U ? UNICODE : ANSI;
// получаем значение из поля
var ekac = document.getElementById(from).value;
var gnacogh = "";
// len - длина строки
var len = ekac.length;
var tar;
var current; //boolean
// перебираем все символы исходной строки
for(var i=0; i<len; i++){
// получаем код символа в позиции i исходной строки
tar = ekac.charCodeAt(i);
FromumKa=false;
// перебираем все элементы массива arrFrom
for(var j=0; j<arrFrom.length; j++){
// если полученный из строки символ равен
символу в массиве arrFrom на позиции J
if(tar==arrFrom[j]){
// если в массиве arrTo в этой позиции J
пустое значение - выход из цикла
if(arrTo[j]=="") {FromumKa=true; break;}
// если в массиве arrTo этот элемент (J)
не пустой (else для if(arrTo[j]=="")
// к результирующей строке добавлем символ
полученный из кода который содержится в
массиве arrTo на позиции J
gnacogh += String.fromCharCode(arrTo[j]);
FromumKa = true;
// выход из цикла перебора массива arrFrom
break;
} // end if для if(tar==arrFrom[j])
} // next J для for(var j=0; j<arrFrom.length; j++)
получаем следующий элемент массива arrFrom
// если совпадений символа (точнее кода символа)
из исходной строки в массиве arrFrom не найдено,
то к результирующей строке добавляем
символ полученный из кода символа исходной
строк (т.е. ничего не конвертируем)
if(!FromumKa) gnacogh += String.fromCharCode(tar);
} // next I для for(var i=0; i<len; i++) перемещаемся на след. символ в исходной строке
// результирующую строку выводим в поле
document.getElementById(to).value = gnacogh;
}
|