Sakur Enseleit: String suchen und Anzahl der Ergebnisse ausgeben?

Hallo Forum!

Gibt es eine Funktion, die genau das tut? Also ich suche in einem längeren Text in einem Textfeld zum Beispiel nach "Test" und die Funtkion gibt mir dann die Anzahl zurück, wie oft das Wort "Test" in dem Text vorkommt.

LG, Sakur

  1. Hallo,

    Gibt es eine Funktion, die genau das tut? Also ich suche in einem längeren Text in einem Textfeld zum Beispiel nach "Test" und die Funtkion gibt mir dann die Anzahl zurück, wie oft das Wort "Test" in dem Text vorkommt.

    Suche mittels indexOf das Vorkommen des Teilstrings im Gesamtstring:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Test by TM 05/02</title>
    <script language="JavaScript" type="text/javascript">
    <!--

    function TextAnzahl(text,test)
    {
      var start=0, anz=0, pos;
      while(start<text.length)
      {
        pos=text.indexOf(test,start);
        if(pos>=0)
        {
          anz++;
          start=pos+1;
        }
        else
        {
          return anz;
        }
      }
    }

    //-->
    </script>
    </head>
    <body onload="alert(TextAnzahl('abc   abc   abc   abc   abc','abc'))">

    </body>
    </html>

    MfG, Thomas

  2. Hallo.

    Gibt es eine Funktion, die genau das tut? Also ich suche in einem längeren Text in einem Textfeld zum Beispiel nach "Test" und die Funtkion gibt mir dann die Anzahl zurück, wie oft das Wort "Test" in dem Text vorkommt.

    <script type="text/javascript">
    <!--
     function c(e,t)
      {
       for(ce = 0; t.indexOf(e) != -1; ce++){t = t.substring(t.indexOf(e)+e.length,t.length)}
       return ce;
      }
     window.alert(c("Test","Dieser Testtext steht nur zu Testzwecken hier. Ende des Tests."));
    //-->
    </script>

    Gruß
    Norbert

    1. Hallo nochmal.

      <script type="text/javascript">
      <!--
      [...]
      //-->
      </script>

      Besser ist's so:
      <script type="text/javascript">
      <!--
       function c(e,t)
        {
         if(e != "" && typeof(e) == "string"
         && t != "" && typeof(t) == "string")
          {
           for(ce = 0; t.indexOf(e) != -1; ce++)
            {
             t = t.substring(t.indexOf(e)+e.length,t.length);
            }
           return ce;
          }
         else{return 0}
        }
      //-->
      </script>

      Gruß
      Norbert