javascript RegExp lastIndex

Jofre

Erfahrenes Mitglied
ich möchte in dem Beispiel /6,7/ durch eine variable ersetzen . Hier z.B. durch zz="6,7".
Das funktioniert nicht. Ich habe es auch robiert mit "/" + zz + "/g". Vergeblich

Gibt es auch was was den ersten und nicht den letzten Index liefert?

Gott zum Gruß

Joachim



Code:
<!DOCTYPE html>
<html>
<body>

<script>
var str = "6,7,2,4,2,3,1,5,6,7,5,6,7,8";
var patt1 = /6,7/g;
alert(str[24]);
while (patt1.test(str)==true)
  {
  document.write("'ain' found. Index now at: "+patt1.lastIndex);
  document.write("<br>");
  }
</script>

</body>
</html>
 
Wenn Du den ersten Index haben willst, braucht es keine Regex, sondern Du kannst es mit indexOf finden:
Code:
        var str = "6,7,2,4,2,3,1,5,6,7,5,6,7,8";
        var searchstr = "6,7";
        var idx = str.indexOf(searchstr);
        console.log(idx);
Falls Du doch eine Regex brauchst, kannst Du sie dynamisch aus Variablen zusammen bauen mit dem RegExp-Objekt:
JavaScript/Objekte/RegExp – SELFHTML-Wiki
 
Dankje

aber ich möchte den jeweils ersten oder meinetwegen auch den jeweils letzen Indexwert des gesuchten Tel - Strings haben ( Im Beispiel taucht der Teil - String "6,7" 3 mal auf.

kann man
var patt1 = /6,7/g;

kann man nicht stat mit 6,7 mit einer Variablen zz = 6,7 arbeiten?

var patt1 = /zz/g oder irgendwie anders???
 
kann man nicht stat mit 6,7 mit einer Variablen zz = 6,7 arbeiten?

var patt1 = /zz/g oder irgendwie anders???
Habe ich doch geschrieben: Mit dem RegExp-Objekt kannst Du eine Regexp aus einem String erzeugen.

Und für den ersten und letzten Indexwert kannst Du indexOf() und lastIndexOf() benutzen.
 
Für Interessierte : So sieht meine Lösung aus:

Code:
<!DOCTYPE html>
<html>
<body>
    
<script>
var ind = [];
var str = "1,6,7,2,4,2,3,1,5,6,7,5,6,7,8";
var gesucht="6,7";

var patt1 = new RegExp(gesucht,"g");
while (patt1.test(str)==true)
  {
 document.write("End index found at: "+patt1.lastIndex);
 document.write("<br>");
 ind.push(patt1.lastIndex-gesucht.length);
  }
  alert("Start index " + ind);
</script>

</body>
</html>
 
Zurück