Deine erste Funk ist fast richtig. Entfernen Sie einfach das 'g'-Flag, das für' global 'steht (bearbeiten), und geben Sie ihm einen Kontext, um das zweite' r 'zu erkennen.
Bearbeiten: Ich habe nicht gesehen, dass es das zweite 'r' war, also habe ich das '/' hinzugefügt. Benötigt \ /, um das '/' zu umgehen, wenn ein regEx-Argument verwendet wird. Vielen Dank für die Upvotes, aber ich habe mich geirrt, also werde ich mehr Details für Leute korrigieren und hinzufügen, die daran interessiert sind, die Grundlagen von regEx besser zu verstehen, aber das würde funktionieren:
mystring.replace(/\/r/, '/')
Nun zur übermäßigen Erklärung:
Denken Sie beim Lesen / Schreiben eines regEx-Musters an: <a Zeichen oder Zeichensatz> gefolgt von <a Zeichen oder Zeichensatz> gefolgt von <...
In regEx kann <a Zeichen oder Zeichensatz> einzeln sein:
/each char in this pattern/
Lesen Sie also als e, gefolgt von a, gefolgt von c usw.
Oder ein einzelnes <a Zeichen oder ein Satz von Zeichen> können Zeichen sein, die von einer Zeichenklasse beschrieben werden:
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
Oder erweitert, um einer Anzahl von Zeichen zu entsprechen (aber am besten als ein einzelnes Element in Bezug auf das sequentielle Muster zu betrachten):
/a{2}/
//precisely two 'a' chars - matches identically as /aa/ would
/[aA]{1,3}/
//1-3 matches of 'a' or 'A'
/[a-zA-Z]+/
//one or more matches of any letter in the alphabet upper and lower
//'-' denotes a sequence in a character class
/[0-9]*/
//0 to any number of matches of any decimal character (/\d*/ would also work)
Also mach ein paar zusammen:
var rePattern = /[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/g
var joesStr = 'aaaAAAaaEat at Joes123454321 or maybe aAaAJoes all you can eat098765';
joesStr.match(rePattern);
//returns ["aaaAAAaaEat at Joes123454321", "aAaAJoes all you can eat0"]
//without the 'g' after the closing '/' it would just stop at the first match and return:
//["aaaAAAaaEat at Joes123454321"]
Und natürlich habe ich zu viel ausgearbeitet, aber mein Punkt war einfach, dass dies:
/cat/
ist eine Reihe von 3 Musterelementen (eine Sache, gefolgt von einer Sache, gefolgt von einer Sache).
Und so ist das:
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
So verrückt regEx auch aussieht, es zerfällt alles in eine Reihe von Dingen (möglicherweise Dinge mit mehreren Zeichen), die nacheinander aufeinander folgen. Ein grundlegender Punkt, aber einer, für den ich eine Weile gebraucht habe, um vorbei zu kommen. Ich bin über Bord gegangen und habe ihn hier erklärt, da ich denke, dass er dem OP und anderen RegEx-Neulingen helfen würde, zu verstehen, was los ist. Der Schlüssel zum Lesen / Schreiben von regEx besteht darin, es in diese Teile zu zerlegen.