Votre premier func est presque correct. Il suffit d'enlever le drapeau 'g' qui signifie 'global' (édition) et de lui donner un contexte pour repérer le deuxième 'r'.
Edit : je n'ai pas vu que c'était le deuxième 'r' avant, donc j'ai ajouté le '/'. Il est nécessaire d'échapper au '/' lors de l'utilisation d'un argument regEx. Merci pour les votes positifs, mais j'avais tort, je vais donc corriger et ajouter plus de détails pour les personnes intéressées à mieux comprendre les bases de regEx, mais cela pourrait fonctionner :
mystring.replace(/\/r/, '/')
Maintenant, l'explication excessive :
Lorsque vous lisez/écrivez un modèle regEx, pensez en termes de : <a caractère ou ensemble de caractères> suivi par <a caractère ou ensemble de caractères> suivi par <...
Dans regEx <a caractère ou ensemble de caractères> pourrait être un à la fois :
/each char in this pattern/
Donc lire comme e, suivi de a, suivi de c, etc...
Ou encore, un seul <a caractère ou ensemble de caractères> pourrait être des caractères décrits par une classe de caractères :
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
Il peut être étendu pour correspondre à une quantité de caractères (mais il est toujours préférable de le considérer comme un élément unique en termes de modèle séquentiel) :
/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)
Alors faites-en un paquet :
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"]
Et bien sûr, j'ai trop développé, mais ce que je voulais dire, c'est que.. :
/cat/
est une série de 3 éléments de motifs (une chose suivie d'une chose suivie d'une chose).
Et ceci aussi :
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
Aussi farfelu que cela puisse paraître, regEx se résume à des séries de choses (potentiellement des choses à plusieurs caractères) qui se suivent séquentiellement. C'est un point assez basique mais qui m'a pris un certain temps pour le dépasser. J'ai donc décidé de l'expliquer ici car je pense que cela aidera le PO et d'autres personnes novices en regEx à comprendre ce qui se passe. La clé de la lecture/écriture d'un regEx est de le décomposer en plusieurs parties.
0 votes
Quel est le problème ici, les "r" ont tous été enlevés, n'est-ce pas ?
0 votes
Non, le premier ne l'était pas.