Frage von maxlllll, 46

Ich habe ein problem Regexp Java script erst gibt man ein Text ein dann drunter den String oder zahl die suchen will und er gibt die Position Danke:)?

Das erste Feld gibt man ein Text ein (die var f1 bekommt den eingeben Text) drunter gibt man den Buchstaben ein oder Zahl( die var f2 bekommt den String) und dann drückt man auf ein button und dann kommt drunter stehen das : das Wort wurde gefunden, Das gesuchte Wort steht auf position 13 .

Ich bekommen das nicht weil ich nicht weiß wie man nach einer nach einer var sucht danke

Kann mir einer es verbessern so dass es geht einen sehr großen Dank im Voraus :))

        function ubergeben ()
                    {
                    var f1=document.getElementById("eingabe").text.value;
                    var f2=document.getElementById("eingabe").bs.value;
                
                  var Suchmuster = new RegExp(/[f2] /g);
            Bestellwerte = f1.search(Suchmuster);
            
               document.getElementById("resultat").innerHTML+= Bestellwerte + "<br>";
               document.getElementById("resultat").innerHTML+= Suchmuster.test(f1) + "<br>";
             if (Suchmuster.test() ===-1 )
            document.getElementById("resultat").innerHTML+= "das gesuchte wort wurde nicht gefunden";               
                }
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Dory1, 37

HTML

Text <input type="text" id="eingabe" value="Hallo Welt">
Durchsuchen nach <input type="text" id="suche">
<p id="resultat"></p>

JavaScript

(function(){
var suchfeld = document.getElementById("suche");
var resultat = document.getElementById("resultat");
suchfeld.addEventListener("keyup", function(e) {
var suche = suchfeld.value;
if (suche == "") {
resultat.innerHTML = "Nichts gesucht";
return;
}
var text = document.getElementById("eingabe").value;
var match = text.match(new RegExp(suche));
resultat.innerHTML = match ? "Position: " + match.index : "Kein Treffer";
});
})();



Demo: http://codepen.io/anon/pen/XdGjQd



Antwort
von Sarkophator, 22

Du hast hier zwar schon eine Lösung bekommen, allerdings scheint es mir, wenn ich mir deinen Code anschaue, dass einige Missverständnisse in Bezug auf RegExp bestehen. Ich versuche diese hier mal aufzuklären.

Die Syntax mit den Slashes (/pattern/flags) erstellt ein RegExp-Objekt, das Ergebnis ist also das gleiche wie bei new RegExp("pattern", "flags"). Du benutzt beides doppelt, das brauchst du an der Stelle nicht.

Der Vorteil an dem RegExp-Konstruktor ist der, dass du RegExp-Objekte aus String-Variablen erstellen kannst, da du bei dem Shorthand mit den Slashes keine Variablen einsetzen kannst. D.h. du willst an der Stelle folgendes:

var Suchmuster = new RegExp(f2, "g");

Außerdem macht die Zeile

if(Suchmuster.test() === -1)

relativ wenig Sinn, da einerseits kein String übergeben wird der überprüft werden soll und die test()-Funktion nur true oder false zurückgibt.

Keine passende Antwort gefunden?

Fragen Sie die Community