1: Comment créer des expressions régulières
1. Format de texte, la méthode d'utilisation est la suivante:
/ motif / drapeaux (c'est-à-dire: / mode / marque)
2.Regexp Constructeur, la méthode d'utilisation est la suivante:
Nouveau regexp ("modèle" [, "Flags"]) (c'est-à-dire: new regexp ("motif" [, "mark"])))
paramètre:
Modèle: texte qui représente l'expression régulière
Flags (tag): Si vous spécifiez cet élément, les drapeaux peuvent être l'un des éléments suivants:
G: Match mondial (match complet)
I: Ignore Case (Ignore Case)
GI: à la fois Global Match et ignorer le cas (correspondre à toutes les valeurs possibles, et ignorer le cas)
Remarque: N'utilisez pas de devis pour marquer les paramètres au format texte et n'utilisez pas de devis pour marquer les paramètres de la fonction du générateur Ergou. Donc l'expression suivante
C'est équivalent:
/ ab + c / i ============================ New Regexp ("AB + C", "I")
décrire:
Lors de la création d'expressions régulières à l'aide de fonctions de constructeur, il est nécessaire d'utiliser des chaînes normales pour éviter les règles (inclure les caractères principaux / dans la chaîne).
Par exemple, les deux déclarations suivantes sont équivalentes:
re = new regexp ("// w +");
re = // w + /
Remarque: Regexp a un attribut préréglé
1 $, ..., 9 $ Attributs
Correspond aux sous-chaînes enfermées entre parenthèses, le cas échéant.
C'est la propriété de Regexp
Statique, lire uniquement
Fourni dans JavaScript 1.2, NES 3.0 ou supérieur
Description: Parce que l'entrée est une propriété statique, pas un attribut d'objets d'expression régulière individuels. Vous pouvez y accéder en utilisant regexp.input
propriété.
Le nombre de sous-chaînes qui peuvent être ajoutées entre parenthèses n'est pas limitée, mais les objets d'expression régulière ne peuvent conserver que les 9 derniers. Si vous souhaitez accéder à tous
La chaîne correspondante entre parenthèses, vous pouvez utiliser le tableau renvoyé.
<! Doctype html public "- // w3c // dtd html 4.0 transitional // en"> <html> <adread> <t titre> nouveau document </ title> <script linguisse = "javascript1.2"> var regexp = new regexp ("(// w +) // s (// w +)"); str = "John Smith"; newsstr = str.replace (regexp, "2 $"); newsstr2 = str.replace (regexp, "1 $"); Document.Write ("String original:" + str + "<br/>"); document.write (newstr + "<br/>"); document.write (newstr2 + "<br/>"); Document.Write ('1 $ =' + regexp. $ $ + "2 $ =" + regexp. 2 $); </cript> </ head> <body> </ body> </html>2: La méthode Match () peut récupérer la valeur spécifiée dans une chaîne, ou trouver une correspondance pour une ou plusieurs expressions régulières. Il renvoie la valeur spécifiée, et non la position de la chaîne.
grammaire
StringObject.match (SearchValue)
StringObject.match (regexp) Description du paramètre
SearchValue requis. Spécifie la valeur de chaîne à récupérer.
Regexp est requis. Objet regexp qui spécifie le motif à correspondre. Si le paramètre n'est pas un objet regexp, vous devez d'abord le passer au constructeur Regexp et le convertir en un objet Regexp.
Valeur de retour
Stocke le tableau de résultats correspondant. Le contenu de ce tableau dépend de la question de savoir si le regexp a l'indicateur global g.
illustrer
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é.
Exemple d'utilisation du match:
<! Doctype html public "- // w3c // dtd html 4.0 transitional // en"> <html> <adread> <itle> nouveau document </ title> <script linguisse = "javascript1.2"> var str = "1 Plus 2 equal 3"; var str2 = "23/11/55"; var résultats = str.match (new regexp ("// d +", "gi")); for (var i = 0; i <result.length; i ++) {document.write (résultats [i] + "<br/>"); } var res = str2.match (new regexp ("(// d // d?) / (// d // d?) / (// d // d)")); if (str2.length == res [0] .length) {document.write (res [1] + "<br/>"); document.write (res [2] + "<br/>"); document.write (res [3] + "<br/>"); } </ Script> </ head> <body> </ body> </html> fonction datecheck (value) {re = new regexp ("(// d // d?) / (// d // d?) / (// d // d)"); var result = value.match (re); if (result) {if (result [0] .length! = value.length) {alert ("Format de date de mauvaise date. Le format correct doit être mm / dd / yy.") return false; } else {var t = résultat [3]; var y = parseInt ("20" + t); var m = parseInt (résultat [1], 10) - 1; var day = parseInt (résultat [2], 10); var d = nouvelle date (y, m, jour); if (d.getlyear ()! = y || d.getMonth ()! = m || d.getDate ()! = day) {alert ("Date d'erreur!") return false; } else {var sm = résultat [1] .length == 1? '0' + résultat [1]: résultat [1]; var sday = résultat [2] .length == 1? '0' + résultat [2]: résultat [2]; var sy = résultat [3]; else return sm + '/' + sday + '/' + sy; }}} else {alert ("Format de date de mauvaise date. Le format correct doit être mm / dd / yy."); retourne false; }}