Question

La norme JavaScript regex prend-elle en charge le forçage du cas lors d'une recherche/remplacement ?

Je suis généralement conscient du \u etc.options pour forcer la casse d’un groupe de capture dans la partie de remplacement d’une expression régulière.Cependant, je n'arrive pas à comprendre comment procéder dans une expression régulière JavaScript. Je n'ai pas accès au code JavaScript lui-même mais plutôt un programme que j'utilise permet la saisie des chaînes d'expressions régulières qu'il transmet au moteur d'expression régulière lui-même.

Était-ce utile?

La solution

Si je vous comprends bien, non.

Vous ne pouvez pas évaluer javascript (pour transformer les correspondances en majuscules) à partir d'un modèle regex.

Je ne connais que str.replace() pour convertir en majuscules.

Autres conseils

La correspondance de chaîne est effectuée à l'aide d'expressions régulières. Cependant, le remplacement de chaîne ne se soucie que de la partie de la chaîne d'objet que vous remplacez (qui est alimentée par la correspondance d'expression régulière), et il effectue simplement un remplacement direct de chaîne en fonction de ce que vous lui donnez. :

var subject = "This is a subject string";

// fails, case-sensitive match by default
subject.replace(/this/, "That"); 

// succeeds, case-insensitive expression using /i modifier, replaces the word "This" with the word "That"
subject.replace(/this/i, "That"); 

Maintenant, si vous souhaitez capturer une partie de la chaîne correspondante et l'utiliser pour changer la casse, vous pouvez également le faire en utilisant des groupes d'expressions (parenthèses dans votre expression) :

var subject = "This is a subject string";
var matches = subject.match(/(subject) string/i);
if (matches.length > 0)
{
    // matches[0] is the entire match, or "subject string"
    // matches[1] is the first group match, or "subject"
    subject.replace(matches[1], matches[1].toUpperCase());
    // subject now reads "This is a SUBJECT string"
}

En bref, en faisant une correspondance, vous pouvez gérer la sensibilité à la casse si vous le souhaitez.Effectuer un remplacement est aussi simple que de lui indiquer quelle chaîne directe utiliser pour le remplacement.

Les expressions régulières JavaScript sont sensibles à la casse par défaut et prennent en charge l'insensibilité à la casse si le paramètre /i drapeau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top