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

Linux En Az Sistem Gereksinimi İsteyen Dağıtımları Değerlendirilmesi

Linux İşletim Sisteminin Dağıtımlarının En az sistem gereksinimi isteyen sürümleri, değerlendirilmesi aşağıdadır, Değerlendirilen dağıtımlar şunlardır: Ubuntu Xubuntu Lubuntu Damn Small Linux Linux Mint Fedora Opensuse Debian Rat Hat Suse Linux Suse Linux Sistem Gereksinimleri: Pentium 1-4 ya da Xeon; AMD Duron, Athlon (XP, MP ya da 64), Sempron ya da Opteron 256MB RAM 500MB boş disk alanı 800x600 yada üstü resolution Rat Hat Memory Gerekli: 4 GB of memory Önerilen: 8 GB of memory CPU Gerekli: Intel Core processor, 2.4GHz, 512K cache or equivalent Önerilen: Intel multi-core processor, 2.4GHz dual processor, 512K cache or equivalent Storage 5 GB alan temel kurulum için. 40 GB alan Channel başına. 10 GB alan Cache dizini için(/var/cache/rhn) Disk yapılandırması olarak Raid 5 tavsiye edilir. Database İlk kurulum için 12 GB alan önerilir. Client ve channel hesaplamaları ise, 250 KB alan client system başına, 500 KB alan çhannel başına, ayrıca 230 KB channel da...

JAVA'da if - else kosul yapisi

Programlama deyince degiskenlerden sonra akla ilk gelen  if-else  bloklaridir. Programimizi  if-else  kosul yapisi ile yönlendiririz. Velhasil bu yapiyi iyi bilmeden olmaz. Bütün programlama dillerinde mantik aynidir; fakat sözdiziminde ( syntax ) ufak farklar mevcuttur. Java'da  if-else  kosul yapisi genel olarak su sekildedir:   if  ( boolean ) true  ise else false  ise   Görüldügü üzere denetim  boolean  ifade üzerine kurulu.  Boolean  bir ifade iki degerden birini alir:  true  ya da false.  Deger  true  ise sunu yap, degilse bunu yap. Burada dikkat edilmesi gereken en önemli sey  boolean  bir ifade kullanmak. Örneklere geçmeden önce, hayati önem tasiyan karsilastirma ifadelerine kisaca deginmek istiyorum. <, <=, >, >=, == (esitse), =! (esit degilse)   Örnek: int sayi=5; if (sayi==5) System.out.println("sayi=5");   Simd...

MPLS Temel Konfigürasyonu

Bu yazı içerisinde sizlerle temel “MPLS” protokolü konfigürasyonunu adım adım uygulayarak paylaşacağım. Bu adımların tamamını Huawei marka AR 2200 Serisi Router ürün ailesi üzerinde konfigüre edeceğiz. Bu konfigürasyonların kullanıldığı ve çalıştırıldığı işletim sistemi versiyonu “ V200R003C00 ” dur. Konfigürasyon adımlarının tamamı bi çok üretici ürününde de aynı şekilde ve aynı ön gereksinim ve alt yapı hazır olduğu sürece uygulanabilir ve müşteri ve/veya Servis sağlayıcıda devreye alınabilir. İşlem adımlarının uygulanırken temiz bir şekilde anlaşılması çok önemlidir. MPLS Protokolü temel konfigürasyonunu aşağıdaki topoloji üzerinden uygulayarak sizlere sunuyor olacağım. MPLS Referans Topolojimiz Öncelikli olarak tüm Router cihazlarımızda, fiziksel interface’ler ve Loopback interfac IP adres tanımlamalarını topolojimize uygun ayarlıyoruz. RouterB IP İnterface konfigürasyonu; “Router B IP Konfigürasyonu çıktısı” “Router B Üzerinde Yer Alan İnterface’lerin IP...