Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] match(). mit Variable und Regulären Ausdrücken

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] match(). mit Variable und Regulären Ausdrücken

    Hallo Leute,

    Ich bin zurzeit dabei mir per Javascript etwas zusammenzubauen,
    jetzt bin ich aber über ein problem gestolpert, wo ich nur mit google nicht weiter komme.

    Ich möchte einen String durchsuchen.
    Dafür möchte ich eine Variable nehmen und danach reguläre Ausdrücke, also beides gleichzeitig nutzen um zu suchen.

    Also zumbeispiel:
    PHP-Code:
    var string "name-ichweißnichtwas";
    var 
    Test "name-";
    var 
    RegExp = /\w+/;

    var 
    ergebnis string.match(Test+RegExp); 
    Ich weiß das dass nicht funktioniert...
    Ich habs auch schon versucht mit einem Objekt aber ich schaffe es einfach nicht Reguläre Ausdrücke hinter eine Variable zu hängen.

    Noch ne gute Nacht
    LG

  • #2
    Und schon hast du RegExp überschrieben.. Programm tot.

    If regexp is not an object whose [[Class]] property is "RegExp", it is replaced with the result of the expression new RegExp( regexp). Let string denote the result of converting the this value to a string. Then do one of the following:
    • If regexp. global is false: Return the result obtained by invoking RegExp.prototype.exec (see 15.10.6.2) on regexp with string as parameter.
    • If regexp. global is true: Set the regexp.lastIndex property to 0 and invoke RegExp.prototype.exec repeatedly until there is no match. If there is a match with an empty string (in other words, if the value of regexp. lastIndex is left unchanged), increment regexp. lastIndex by 1. Let n be the number of matches. If n=0, then the value returned is null; otherwise, the value returned is an array with the length property set to n and properties 0 through n+1 corresponding to the first elements of the results of all matching invocations of RegExp.prototype.exec.

    Selbst wenn du string.match() keinen regulären Ausdruck übergibst, wird es durch RegExp durchgejagt - das hier ist alles das selbe:
    PHP-Code:
    'bla'.match('b+')
    'bla'.match(/b+/)
    'bla'.match(RegExp("b+"))
    'bla'.match(new RegExp("b+")) 
    Jetzt sollts nicht mehr allzu schwer sein

    Grüße


    Basti

    Kommentar


    • #3
      hmmm schon mal danke.
      Aber das löst mein problem nicht. Hab die Varianten alle schon probiert gehabt.
      Nochmal bisschen genauer mein Problem

      PHP-Code:
      var String "name-hans+alter-13";
      var 
      Searchstring"name-"
      Nun möchte ich herausfinden was hinter "name-" steht bis zu dem "+".
      Der "Searchstring kann auch "alter-" sein, da dies eine funktion ist.
      Nun müsste man das ja irgendwie kombinieren.

      PHP-Code:
      String.match(new RegExp("b+")\w+);
      oder
      String
      .match(RegExp("b+")\w+);  
      oder 
      String
      .match(/searchstring\w+/); 
      Und das alles funktioniert nicht.
      Und ich weiß auch eigentlich warum.
      Aber das ist das was ich brauch um weiter zu kommen.
      Hoffe ich steh gerade nicht einfach nur auf einem Schlauch..

      Danke schon mal im voraus
      LG

      EDIT:
      Also im Endeffekt möchte ich mit der Funktion erreichen das, dass Wort hinter dem "Searchstring" mit einem neuen Ersetzt wird.

      Kommentar


      • #4
        Dann musst Du halt klammern. Und das auch auswerten. Und ersetzen ist wieder etwas anderes. Dafür gibt es replace.

        Kommentar


        • #5
          Und wie soll ich das Klammern?
          Wenn ich mir ein RegExp erstelle
          PHP-Code:
          var suche "name-" 
          var reg= new RegExp(suche); 
          so wenn ich jetzt reg alerte.
          Erhalte ich :
          "/name-/";
          So und jetzt müsste ich vor das "/" ja noch "w+" bringen.
          Hab auch schon versucht die Zeichen zu zählen und dann das letzte "/" wegzunehmen sodass ich dann "w+/" anhängen könnte aber das zählen hat nicht funktioniert...
          Ich glaub ich steh gerade aufm schlauch..

          Kommentar


          • #6
            Zitat von Elias96 Beitrag anzeigen
            So und jetzt müsste ich vor das "/" ja noch "w+" bringen.
            Und es einfach an den Inhalt von suche dran zu hängen, ist zu hoch für dich …?

            Kommentar


            • #7
              ahhhh ....
              Ich bin zu dumm
              Vielen Dank...
              (Eigentlich müsst ich mich dafür schlagen :P)

              Kurz nur noch zur Lösung wenn irgendjemand mal an dem Gleichen Problem hängt..
              PHP-Code:
              var Suche"name-\\w+";
              var 
              re = new RegExp(Suche);
              var 
              Ergebnis wert.match(re); 
              Vielen Dank

              Kommentar

              Lädt...
              X