Konuyu görüntüle
IUCODERS FORUM > Programlama > Diğer (COBOL,asp php js..) > JavaScript
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
27.12.2006-13:33 #13046
var aa = that.getInnerText(a.cells[that.sortColumnIndex]).toLowerCase();
var bb = that.getInnerText(b.cells[that.sortColumnIndex]).toLowerCase();

aa ve bb değişkenlerine String değeri geliyor

if (aa==bb) {
return 0;
} else if (aa<bb) {
return -1;
} else {
return 1;
}

hangisinin küçük yada büyük oldugunu yukarıdaki ifadeden öğrenebiliyorum.Fakat türkçe karakter gelince işime yaramıyor .İçinde türkçe karakterde olan text lerin küçük büyük olduğunu nasıl analrım kodu nasıl düzenlemem gerekiyor
Teşekkürler









Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
27.12.2006-13:38 #13047
rakam mı bunlar yoksa harfleri / metinleri mi sıralamaya çalışıyorsun?





N/A
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
27.12.2006-13:58 #13048
Metinleri sıralamaya çalışıyorum

Mesela sıralama şöyle oluyor

ali
osman
ılgaz

ı türkçe karakter oldugu için onu son atıyor





Zoru severim, imkans?z vakit al?r..




Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
27.12.2006-14:46 #13049
ssakinmaz yazdi
 
Metinleri sıralamaya çalışıyorum

Mesela sıralama şöyle oluyor

ali
osman
ılgaz

ı türkçe karakter oldugu için onu son atıyor



Türkçe karakterlerin ascii kodları 127 den yukarıda olduğundan onlar daha büyükmüş gibi ele alınır. Nasıl yaparsın bilmiyorum ama şöyle bir karakterler dizisi oluşturursan.

A 1. eleman B ikinci eleman C 3. Ç 4. D 5. ... gibi
sonrada dizideki numarasına göre karakterin büyüklüğünü hesaplarsan istediğini yapabilirsin.

kolay gelsin..







Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
27.12.2006-17:39 #13050
Karakter dizisi oluştudum ama dizide ı var diyelim dizideki ı yı çekerken y die çekiyor,
bu defa karşılaştırma olmuyor...





Zoru severim, imkans?z vakit al?r..




Yazar
tatanga


avatar

Kayıt: 13.10.2006
27.12.2006-18:52 #13052
sorun karakter seti tanımlamadığın içindir. iso-8859-9 türkçe karakter seti için, uygularsan çalışacaktır

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
27.12.2006-18:57 #13053
sorun dil ayarından kaynaklanıyor. regular expression kullanırken Ww kullanıyordum.





N/A
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
27.12.2006-20:22 #13056
Çözümü buldum yanımda kodlar yok sabah buraya koyarım
herkese çok teşekkürler
ama charset i set etmeyle çözülmüyor





Zoru severim, imkans?z vakit al?r..




Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
28.12.2006-09:11 #13084
Aşagıdaki kodda a dan z yekadar tüm karakterlerin karakter setindeki değerini array a yazdım.Daha sonra elimdeki stringlerin karakterlerini sırayla çektim ve array dan degerini alıp karşılaştırdım.Bazı kodlar gereksiz olabilir deneye deneye en sonunda böle oldu biggrin Kodları düzeltebiiriz


var myArray = new Array(97,65,98,66,99,67,231,199,100,68,101,69,102,70,103,71,287,286,104,72,305,73,105,304,106,74,107,75,108,76,109,77,110,78,111,79,246,214,112,80,113,81,114,82,115,83,351,350,116,84,117,85,252,220,118,86,119,87,120,88,121,89,122,90);

var lenA = aa.length;
var lenB = bb.length;
var len = lenA < lenB ? lenA : lenB;
var degerA = 0;
var degerB = 0;

for(var i= 0 ; i < len ; i++){
for(var j = 0 ; j < myArray.length ; j++){
var m1 = aa.charCodeAt(i);
var m2 = Number(myArray[j]);
if(m1 == m2){
degerA = j;
break;
}

}

for(var k = 0 ; k < myArray.length ; k++){
var n1 = bb.charCodeAt(i);
var n2 = Number(myArray[k]);

if((n1 == n2)){
degerB = k;
break;
}

}


if(degerA == degerB){
continue;
}else if(degerA < degerB){
return -1;
}else{
return 1;
}
}





Zoru severim, imkans?z vakit al?r..




Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb