Des expressions régulières décrivent un modèle de correspondance de chaînes, qui peut être utilisé pour vérifier si une chaîne contient une certaine sous-chaîne, remplacer la sous-chaîne correspondante ou éliminer une sous-chaîne qui répond à une certaine condition d'une certaine chaîne, etc.
Parce que les expressions régulières ne sont pas utilisées fréquemment, elles sont faciles à les oublier fréquemment. L'éditeur suivant répertorie les fonctions et fonctions couramment utilisées ici de manière concise pour une visualisation future:
Il existe 2 fonctions couramment utilisées de l'objet regexp
1. Fonction de test
Utilisation: regexpObject.test (String)
Return: true si la chaîne de chaîne contient le texte correspondant à regexpObject, sinon faux.
Description: Il n'y a rien de spécial dans cette méthode, et il n'y a pas de traitement spécial pour le modificateur G
Exemple:
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /a=1/ ;console.log(reg.test(url)); // Le résultat de sortie est vrai
2. Fonction EXEC
Utilisation: regexpObject.exec (String)
Retour: renvoie un tableau où les résultats de correspondance sont stockés. Si aucune correspondance n'est trouvée, la valeur de retour est nul.
décrire:
La méthode Exec () est très puissante. Il s'agit d'une méthode générale et est plus complexe à utiliser que la méthode Test () et les méthodes qui prennent en charge les expressions régulières.
Si exec () trouve un texte correspondant, un tableau de résultat est renvoyé. Sinon, retournez null. Le 0ème élément de ce tableau est un texte qui correspond à l'expression régulière, le 1er élément est un texte qui correspond à la 1ère sous-expression de RegexpObject, le cas échéant, le 2ème élément est un texte qui correspond à la 2ème sous-expression de RegexpObject, et ainsi de suite. En plus de l'élément de tableau et de l'attribut de longueur, la méthode exec () renvoie deux propriétés. La propriété d'index déclare la position du premier caractère correspondant au texte. La propriété d'entrée stocke la chaîne de chaîne récupérée. Nous pouvons voir que lors de l'appel de la méthode Exec () d'un objet regexp non global, le tableau renvoyé est le même que le tableau renvoyé en appelant la méthode String.match ().
Cependant, lorsque RegexpObject est une expression régulière globale, le comportement d'EXEC () est légèrement plus compliqué. Il commence à rechercher la chaîne de chaîne au caractère spécifié par la propriété LastIndex de regexpObject. Lorsque Exec () trouve le texte correspondant à l'expression, après correspondance, il définit la propriété LastIndex de regexpObject à la position suivante du dernier caractère du texte correspondant. C'est-à-dire que vous pouvez itérer tout le texte correspondant dans la chaîne en appelant la méthode exec () à plusieurs reprises. Lorsque EXEC () ne peut plus trouver le texte correspondant, il renvoie NULL et réinitialise la propriété LastIndex à 0.
Exemple:
Expression régulière avec le modificateur g
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /(@^?&= diplomate. // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3" .console.log(reg.exec(url)); // ["b = 2", "b", "2", index: 25, entrée: "http://www.baidu.com?a=1&b=2&c=3" .console.log(reg.exec(url)); // ["C = 3", "C", "3", index: 29, entrée: "http://www.baidu.com?a=1&b=2&c=3"console.log(reg.exec(url)); //nullreg.lastIndex = 0; // Ce code est très important, veuillez prêter attention à la compréhension de Console.log (reg.exec (URL)); // ["a = 1", "a", "1", index: 21, entrée: http://www.baidu.com?a=1&b=2&c=3]
Expressions régulières sans modificateur g
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /(@^?&= diplomate. // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3" .console.log(reg.exec(url)); // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3" .console.log(reg.exec(url)); // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3" .console.log(reg.exec(url)); // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3". console.log (reg.exec (URL)); // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3". console.log (reg.exec (URL)); // ["a = 1", "a", "1", index: 21, entrée: http://www.baidu.com?a=1&b=2&c=3]
Avez-vous trouvé quelque chose de différent? Lisez attentivement la description de la fonction et vous comprendrez ^ _ ^
Il y a 4 fonctions d'objet String qui soutiennent la régularité, nous n'en parlerons que de 2.
1. Fonction de correspondance
Utilisation: stringObject.match (SearchValue | Regexp), nous ne parlons ici que du mode regexp
Valeur de retour: tableau qui stocke les résultats de correspondance. Le contenu de ce tableau dépend de la question de savoir si le regexp a l'indicateur global g.
décrire:
La méthode Match () récupère le string stringObject pour trouver un ou plusieurs texte correspondant à Regexp. Le comportement de cette méthode dépend dans une large mesure de savoir si le regexp a le drapeau g.
Si regexp n'a pas de drapeau G, la méthode Match () ne peut effectuer une correspondance qu'une seule fois dans stringObject. Si aucun texte correspondant n'est trouvé, Match () renvoie null. Sinon, il renvoie un tableau qui stocke des informations sur le texte correspondant qu'il a trouvé. Le 0ème élément des tableaux de tableaux correspondant au texte, tandis que le texte de restauration correspond à la sous-expression de l'expression régulière. En plus de ces éléments de tableau réguliers, le tableau retourné contient également deux propriétés d'objet. L'attribut d'index déclare la position du caractère de départ correspondant au texte dans le stringObject, et l'attribut d'entrée déclare une référence au stringObject.
Si regexp a l'indicateur G, la méthode Match () effectue une recherche globale, en trouvant toutes les sous-chaînes correspondantes dans stringObject. Si aucune sous-chaîne correspondante n'est trouvée, Null est retourné. Si une ou plusieurs sous-chaînes correspondantes sont trouvées, un tableau est renvoyé. Cependant, le contenu du tableau renvoyé par Global Match est très différent de la première. Son élément de tableau stocke toutes les sous-chaînes correspondantes dans stringObject, et il n'y a pas d'attribut d'index ni d'attribut d'entrée.
Exemple:
Sans modificateur g
var url = 'http://www.baidu.com?a=1&b=2&c=3' ;var reg = / ([^? & =] +) = ([^? & =]) * /; var result = url.match (reg); console.log (résultat); // ["a = 1", "a", "1", index: 21, entrée: "http://www.baidu.com?a=1&b=2&c=3" .console.log(result.index); //21Console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3".
Avec le modificateur g
var url = 'http://www.baidu.com?a=1&b=2&c=3' ;var reg = / ([^? & =] +) = ([^? & =]) * / g; var result = url.match (reg); console.log (résultat); // ["a = 1", "b = 2", "c = 3"] console.log (result.index); //undefinedConsole.log(result.input); //indéfini
Avez-vous trouvé quelque chose de différent? Lisez attentivement la description de la fonction et vous comprendrez ^ _ ^
2. Remplacer la fonction
Utilisation: stringObject.replace (regexp / substr, remplacement)
Valeur de retour: une nouvelle chaîne obtenue après avoir remplacé la première correspondance ou toutes les correspondances de regexp par le remplacement.
Description: La méthode Replace () de la chaîne stringObject effectue une opération de recherche et de remplacement. Il recherchera des sous-chaînes correspondant à Regexp dans StringObject et remplacera ces sous-chaînes par le remplacement. Si Regexp a l'indicateur global G, la méthode Remplace () remplace toutes les sous-chaînes correspondantes. Sinon, il remplace uniquement la première sous-chaîne correspondante.
Le remplacement peut être une chaîne ou une fonction. S'il s'agit d'une chaîne, chaque match sera remplacé par la chaîne. Mais le caractère $ en remplacement a une signification spécifique. Comme indiqué dans le tableau suivant, il indique que la chaîne obtenue à partir de la correspondance de motifs sera utilisée pour le remplacement.
| personnage | Remplacer le texte |
|---|---|
| 1 $, 2 $, ... 99 $ | Texte qui correspond aux 1er à la 99e sous-expressions dans Regexp. |
| $ & | Une substrice qui correspond à l'expression regexp. |
| $ ` | Texte à gauche de la sous-chaîne correspondante. |
| $ ' | Texte à droite de la sous-chaîne correspondante. |
| $$ | Symbole de mesure direct. (Cela signifie que lorsque vous souhaitez le remplacer par le symbole $, écrivez deux $) |
Exemple:
Sans modificateur g
var url = 'http://www.baidu.com?a=1&b=2&c=3' ;var reg = / ([^? & =] +) = ([^? & =]) * /; var url1 = url.replace (reg, fonction (a, b, c, d, e) {console (a, b, c, d, e); http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3Avec le modificateur g
var url = 'http://www.baidu.com?a=1&b=2&c=3' ;var reg = / ([^? & =] +) = ([^? & =]) * / g; var url1 = url.replace (reg, function (a, b, c, d, e) {console. A = 1, A, 1, 21, http://www.baidu.com?a=1&b=2&c=3 et b = 2, b, 2, 25, http://www.baidu.com?a=1&b=2&c=3 et | 'ok';}) console.log (URL1); //http://www.baidu.com?ok&ok&okLorsque le deuxième paramètre est une chaîne
var url = 'http://www.baidu.com?a=1&b=2&c=3' ;var reg = / ([^? & =] +) = ([^? & =]) * /; // sans modificateur gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&b=2&c=3var reg = / ([^? & =] +) = ([^? & =]) * / g; // avec le modificateur gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
Ce qui précède est l'analyse complète de la correspondance, du remplacement, de l'exécutif et d'autres fonctions dans les chaînes JS et les expressions régulières introduites par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!