J'ai du JavaScript qui s'exécute et utilise un remplacement par des expressions régulières pour modifier le contenu d'une page. Cependant, j'ai un problème avec un quantificateur regex spécifique. Toute la documentation que j'ai lue (et je sais que cela fonctionne aussi en regex dans d'autres langues) dit que JavaScript supporte les quantificateurs {N}
, {N,}
et {N,N}
. C'est-à-dire, vous pouvez spécifier un nombre particulier de correspondances que vous voulez, ou une gamme de correspondances. Par exemple. (zz){5,}
correspond à au moins 10 z d'affilée, et z{5,10}
correspond à n'importe quel nombre de z compris entre 5 et 10, ni plus, ni moins.Problème de quantificateur JavaScript RegExp
Le problème est, je peux correspondre à un nombre exact (par exemple z{5}
) mais pas une plage. Le plus proche que je peux comprendre est qu'il a quelque chose à voir avec la virgule dans la chaîne regex, mais je ne comprends pas pourquoi et ne peux pas contourner cela. J'ai essayé d'échapper la virgule et même en utilisant la chaîne hexadécimale unicode pour la virgule (\u002C
), mais en vain.
Pour dissiper d'éventuels malentendus, et pour répondre à certaines des questions posées dans les commentaires, voici quelques informations supplémentaires (également trouvées dans les commentaires): J'ai essayé de créer le tableau de toutes les manières possibles, y compris var = [/z{5,}/gi,/a{4,5}/gi];
, var = [new RegExp('z{5,}', 'gi'), new RegExp('a{4,5}', 'gi')];
, ainsi que var[0] = new RegExp('z{5,}'), 'gi');
, var[1] = /z{5,}/gi;
, etc. Le tableau est utilisé dans une boucle for comme somevar.replace(regex[i], subst[i]);
.
Peut-être que vous souhaitez publier le code JS que vous utilisez, car les quantificateurs de plage sont pris en charge dans JS regex très bien. – MooGoo
Publiez un exemple de code et dites-nous dans quel navigateur et dans quelle version vous l'avez essayé. – some
Donc, j'ai un tableau avec des valeurs comme "/ z {5,}/gi" et mon script for-loops à travers le contenu du tableau et exécute "var.replace (regex [i], other [i]);" – klanni