Ergebnis 1 bis 3 von 3
  1. #1
    Betty79 ist offline Grünschnabel
    registriert
    01-04-2017
    Beiträge
    2

    replace() findet Ausdruck nicht

    Hallo und guten Abend,

    ich habe ein Problem mit der replace()-Funktion. Habe schon sämtliches ausprobiert, aber stehe jetzt am Ende meiner Ideen woran es liegen könnte.
    Innerhalb einer Rechenaufgabe soll der Teil 547*68 (Zahlen variabel) gesucht werden. replace findet diesen Ausdruck aber nicht. Liegt es am Zeichen "*"
    547 wird gefunden, 547* wird gefunden, das einzelne Zeichen "*" wird gefunden, aber nicht der komplette Ausdruck. Ein regExp()-reserviertes Zeichen ist es auch nicht, sodass ich es escapen müsste. Was ist aber dann der Grund?

    In inputString steht: 48+547*68-73+61*9
    in subS steht: 547*68

    folgendes führe ich anschließend aus:

    Code:
    var re = new RegExp(subS,"g");
    resultString = this.inputStr.replace(re, result);
    Ich hoffe, dass mir jemand helfen kann, bzw. den Grund für dieses Verhalten nennen kann. Ich hätte durchaus alternative Lösungen, die allerdings viel umständlicher wären. Außerdem möchte ich verstehen, warum der Ausdruck nicht gefunden wird.

    LG Betty

  2. #2
    paul schmitz ist offline Doppel-As
    registriert
    29-03-2015
    Beiträge
    134

    AW: replace() findet Ausdruck nicht

    Es gibt eine praktische Funktion, die das Escapen für einen übernimmt, die ich bei Stackoverflow gefunden habe. regex - How to escape regular expression in javascript? - Stack Overflow
    Das folgende Codebeispiel funktonierte bei mir.
    Code:
    RegExp.escape = function(str) {
      return String(str).replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
    };
    var inputString="48+547*68-73+61*9",re="547*68",result="ABCDEFG";
    resultString=inputString.replace(new RegExp(RegExp.escape(re),"g"),result);
    "*" ist übrigens ein Regex-Reserviertes Zeichen. Die Bedeutung findest du unter Regular Expressions :: Eloquent JavaScript , "Repeating parts of a pattern".
    Rubiks!
    Wer Rechtschreibfehler findet, darf sie behalten (und wegen mir auch aufessen)

  3. #3
    Betty79 ist offline Grünschnabel
    registriert
    01-04-2017
    Beiträge
    2

    [GELÖST] replace() findet Ausdruck nicht

    Es funktioniert, ich bedanke mich recht herzlich!!! Mit der Zeichenreservierung hast du Recht, das hab ich dann wohl irgendwie überlesen, wobei dies ja auch mein erster Gedanke war.
    Auch eine schöne function zum escapen. Danke auch dafür.

    LG Betty

Ähnliche Themen

  1. Problem mit Regulären Ausdruck (match, replace)
    Von ramshit im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 27-08-2014, 22:03
  2. Javascript findet DIV nicht
    Von nick_beat20 im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 01-03-2011, 08:57
  3. JS findet element nicht??
    Von TitanNano im Forum JavaScript
    Antworten: 11
    Letzter Beitrag: 02-07-2010, 18:19
  4. ASP findet file nicht
    Von michl4ever im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 21-06-2006, 15:32
  5. Findet die Datenbank nicht...
    Von kasimir83 im Forum Serverseitige Programmierung
    Antworten: 3
    Letzter Beitrag: 19-10-2003, 16:28

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •