anzahl Sucherfolge

Free Faq

Mitglied
Wie kann ich ein TEXTAREA mit Wörtern aus einem Array durchsuchen und in ein INPUT anzeigen, wie oft alle Arrayelemente zusammen gefunden wurden.

Kleines Beispiel:

Im Array sind folgende Wörter:
"der, die, das"

Folgender Text wird durchsucht:
"der Müller hollt Wasser für die Kuh, den die macht muh"

Sorry, ein anderer Text ist mir jetzt nicht eingefallen :-)
Im INPUT wird nun angezeigt:
"3"
Denn im Text ist 1 x "der" und 2 x "die", gibt zusammen 3.
Hoffe ihrwisst, was ich meine :rolleyes:
 
So zum Bsp.:
Code:
<html>
<head>
<title>;o)</title>
<script type="text/javascript">
<!--
woerter=new Array('der','die','das');
zahl=0;
function zaehlen()
{
satz=document.formus.txt.value;
for(i=0;i<woerter.length;++i)
 {
  pattern=eval('/\\b'+woerter[i]+'\\b/gi');
  if(satz.match(pattern))
   {
   zahl+=satz.match(pattern).length;
   }
 }
document.formus.count.value=zahl;
zahl=0;
}
//-->
</script>
</head>
<body>
<form name="formus">
<textarea name="txt">
Der Müller holt Wasser für die Kuh, denn die macht rülps.
</textarea>
<input type="text"name="count"size="4">
<input type="button"onclick="zaehlen()"value="z&auml;hlen">
</form>
</body>
</html>
 
Hab jetzt leider noch ein kleines Problem zu dem Script:
Es funktioniert mit gewissen Sonderzeichen wie
( ) +
...
nicht. Aus Perl kenn ich das und dort half es ein
\
vor das "Problem"-Zeichen zu setzen. Z.B.:
\( \) \+
Aber hier hilft es nicht. Wiw muss ich das machen?
 
du musst 2 Backslash nehmen.
Allerdings haut bei nichtalphanumerischen Zeichen die Sache so nicht hin, weil \b im Ausdruck dann nicht greift.... das beste wäre, wenn du in dem Array dann gleich den kompletten Ausdruck speicherst.
 

Neue Beiträge

Zurück