Ana içeriğe atla

JavaScript ile Cümledeki Kelime Sayisi Nasil Bulunur

Bir text alana girilen metnin kaç kelimeden olustugunu JavaScript ile nasil bulabiliriz. JavaScript kullanmamizin avantaji, kullanici metni yazarken ayni anda kelime sayisini bularak ekranda gösterebiliriz.
Ilk olarak kelimeleri neye göre ayiracagiz. Türkçede kelimeler birbirinden boslukla ayrilir. Noktalama isaretleri kullanildiktan sonra bir bosluk birakilir. Birinci yöntemde kullanicilarimizin bu kurala uydugunu farz edelim.
Sayfamizda head taglari arasina asagidaki JavaScript kodlarini yazalim
<script language="javascript" type="text/javascript">
    function KelimeSayisiBul() {
        var a = document.getElementById('Metin1').value;
        var kelimeler = new Array();
        kelimeler = a.split(' ');
        var cnt = kelimeler.length;
        document.getElementById('kelimeSayisiLabel').innerHTML = cnt;
    }   
</script>

Sayfamizda body taglari arasina da asagidaki gibi bir text alan ve label eklersek, text alanin keyup olayinda da yukarida tanimladigimiz KelimeSayisiBul fonksiyonunu çagirirsak text alana yazdigimiz cümlenin kaç adet kelimeden olustugunu aninda labelda görebiliriz.
<table>
    <tr>
        <td>
            <input id="Metin1" onkeyup="KelimeSayisiBul();" type="text"/>
        </td>
        <td>
            Kelime Sayisi:
            <label id="kelimeSayisiLabel">0</label>
        </td>
    </tr>
</table>

Peki, yukaridaki örnekte eksikler nelerdir.
Ilk olarak noktalama isaretlerinden sonra bosluk birakilmadiginda ve kelimeler arasinda birden fazla bosluk birakildiginda yukaridaki yapi hatali çalisir. Ilk olarak noktalama isaretlerini bularak bunlari bosluga çevirelim sonrasinda cümlemizi yukaridaki örnekte oldugu gibi bosluklara göre ayiralim edelim. Eger kelimeler arasinda birden fazla bosluk birakildi ise bosluga göre ayirma yaptigimizda olusan dizinin bazi elemanlarinin bos oldugunu görürüz. Öyleyse bu kontrolü de yaparsak cümlemizin tam olarak kaç kelimden olustugunu görebiliriz.
Yukaridaki ifadelere göre JavaScript kodumuzu asagidaki gibi degistirmemiz yetecektir.
<script language="javascript" type="text/javascript">
    function KelimeSayisiBul2() {
        var a = document.getElementById('Metin2').value;
        a = a.replace(/[,.?!;:]/gi, ' ');

        document.getElementById('kelimeSayisiLabel2').innerHTML = a;
        var kelimeler = new Array();
        kelimeler = a.split(' ');
        var l = 0;
        var cnt = 0;
        while (l < kelimeler.length) {
            if (kelimeler[l] != '')
                cnt++;
            l++;
        }
        document.getElementById('kelimeSayisiLabel2').innerHTML = cnt;
    }
</script>


Yukarida bahsettigimiz iki yöntemi de barindiran  html ve JavaScript kodlari :
<html >
<head>
    <title>Untitled Page</title>

    <script language="javascript" type="text/javascript">
        function KelimeSayisiBul() {
            var a = document.getElementById('Metin1').value;
            var kelimeler = new Array();
            kelimeler = a.split(' ');
            var cnt = kelimeler.length;
            document.getElementById('kelimeSayisiLabel').innerHTML = cnt;
        }   
    </script>

    <script language="javascript" type="text/javascript">
        function KelimeSayisiBul2() {
            var a = document.getElementById('Metin2').value;
            a = a.replace(/[,.?!;:]/gi, ' ');

            document.getElementById('kelimeSayisiLabel2').innerHTML = a;
            var kelimeler = new Array();
            kelimeler = a.split(' ');
            var l = 0;
            var cnt = 0;
            while (l < kelimeler.length) {
                if (kelimeler[l] != '')
                    cnt++;
                l++;
            }
            document.getElementById('kelimeSayisiLabel2').innerHTML = cnt;
        }
    </script>

</head>
<body>
    <table>
        <tr>
            <td colspan="2">
                Sadece Bosluga göre kelime sayimi:
            </td>
        </tr>
        <tr>
            <td>
                <input id="Metin1" onkeyup="KelimeSayisiBul();"type="text" />
            </td>
            <td>
                Kelime Sayisi:
                <label id="kelimeSayisiLabel">
                    0</label>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <hr style="colorRed"></hr>
            </td>
        </tr>
        <tr>
            <td colspan="2">
                Bosluk ve Noktalama isaretlerine göre kelime sayimi(Birden fazla bosluk kontrolü
                yapar)
            </td>
        </tr>
        <tr>
            <td>
                <input id="Metin2" onkeyup="KelimeSayisiBul2();"type="text" />
            </td>
            <td>
                Kelime Sayisi:
                <label id="kelimeSayisiLabel2">
                    0</label>
            </td>
        </tr>
    </table>
</body>
</html>

Yukaridaki örnegi buradan deneyebilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

JavaScript ile Ziyaretçi Bilgileri Nasil Alinir

Bu makalemizde javascript ile web sayfamizi ziyaret eden kullanicilarin hangi site üzerinden geldigi, kullandigi tarayici bilgisi, ekran çözünürlügü ve Ip adresi gibi bilgileri nasil alacagimizi anlatacagiz. Tarayici Tipini Almak Ziyaretçinin kullandigi tarayici tipini asagidaki javascript kodu ile alabiliriz. function Tarayicitipi() {   alert(navigator.appName); } Tarayici Versiyonunu Almak function Tarayiciversiyon() {   alert(navigator.appVersion); } Ziyaretçinin Hangi Baglantiyi Kullanarak Geldigi Bilgisi (referral bilgisi) Eger ziyaretçi sayfamiza direk olarak degilde bir linki takip ederek geldi ise, geldigi adresi almak için asagidaki kodu kullaniyoruz. Bu sayede arama motorlarin gelen ziyaretçileride bulabilir ve farkli analizler için kullanabiliriz. function ReferrelBilgisi() {    alert(document.referrer); } Ekran Çözünürlügünü Almak function Cozunurluk() {    var w = screen...

GPS'li şapkayla yolunuzu bulmak çok kolay!

Bu ilginç görünümlü şapkayı giydiğinizde, yolunuzu hiç kaybetmeyeceksiniz! Gitmek istediğiniz mekanı bulmak için telefonunuzu cebinizden çıkarmanıza artık gerek yok. Çünkü bu şapka, size yolu tarif edebiliyor, üstelik yalnızca sesle. GPS destekli silindir şapka,  Cornell Üniversitesi  araştırmacıları tarafından geliştirilmiş. Prototip şu an korkunç görünüyor olabilir, ancak onu kullanmak için dil bilmenize bile gerek yok. Şapka, ses tonlarıyla yolunuzu bulmanızı sağladığından elinizi kullanmanıza da gerek kalmıyor. Bu şapkayı yakın bir zamanda satın almanız mümkün olmayacak, ancak teknolojinin navigasyon uygulamalarına uyarlanması faydalı olabilir. Teknoloji görsel ipuçlarıyla çalışmadığından, özellikle görme sorunu yaşayan kullanıcıların işine yarayabilir.

Web Debugging - Hata Ayiklama (Fiddler Aracinin Kullanimi)

Debugging, hata ayiklama, programcinin olmazsa olmazi diyebiliriz. Kodlama sirasinda çikan hatalarda ya da hatasiz çalisan programda istenen sonuç dönmeyince, nerde hata yaptim diye satirlari incelemeye baslariz. Genelde kodlama sirasinda çikan hatalarimizda derleyici neyi yanlis yaptigimizi söylerken, runtime' da hatalarla karsilasinca ya da islemde bir yanlislik varsa isler biraz zorlasir. Pek çogumuz breakpoint'lerle adim adim inceleme yapariz, eger javascript kodlarimiz varsa alert'ler kullanarak isin içinden çikmaya çalisiriz. Tabi bu durum her zaman ise yaramayabilir, ya da çok can sikici bir hale dönüsebilir. Bu durumlarda browserda aslinda neler oldugunu ögrenmek için http requestlari takip edebilecegimiz programlar var. Fiddler bunlardan birisi. Fiddler Nedir Fiddler, bilgisayar ve internet arasindaki tüm web trafigini takip eden ve detayli bir sekilde analiz yapmamizi saglayan ücretsiz bir http debugging (Hata Ayiklama) programidir. Bu program, http trafigini...