851 Shares 6620 views

Javascript, des exemples d'expressions régulières, vérifier une expression régulière

Avant l'avènement du langage hypertexte, mais, jusqu'à ce qu'il devienne clair que nous ne devrions pas seulement regarder, mais de le faire sous certaines conditions, dans un lieu particulier, selon les données modifiées dans les bonnes quantités, la recherche habituelle et remplacer une organisation toute sophistiquée programmeur. Créer des chefs-d'œuvre de recherche d'art dans les langages de programmation et base de données a excellé dans les formes de conditions d'échantillonnage, équipé de procédures stockées, les déclencheurs et d'autres moyens d'échantillons volumineux pistes d'information relationnelle. L'apparition de l'expression régulière à la révolution n'a pas abouti, mais il était un moyen utile et pratique pour rechercher et remplacer des informations. Par exemple, les expressions régulières JavaScript email simplifiera considérablement l'enregistrement des visiteurs, ne chargent pas le site d'envoyer des messages à des adresses inexistantes.

Dire qu'une expression régulière JavaScript est beaucoup mieux appelle séquences produmannnyh indexOf () dans le cadre de cycliques et les opérateurs classiques, ne peut dire qu'il a fait le code de script est compact, mais peu compréhensible pour les non-initiés, peut être sans ambiguïté.

Objet RegExp = + moteur de template

Les expressions régulières – est un moteur de modèle +. La première est en fait une expression régulière – objet JavaScript – le RegExp, la seconde – un artiste de modèle, appliquer à la ligne. Les moteurs qui mettent en œuvre des expressions régulières pour chaque langage de programmation sont différents. Et bien que toutes les différences sont importantes, il faut garder à l'esprit, ainsi que assurez-vous de vérifier soigneusement l'expression régulière avant son opération.

Une mention spéciale lors de l'écriture des expressions régulières est assez facile à utiliser et très efficace, mais il a besoin de soins, et la patience neatness du développeur. En notation des modèles d'expression régulière doivent s'y habituer. Ce n'est pas une mode, il est la logique d'un mécanisme de mise en œuvre de «JavaScript expressions régulières « .

modèle d'expression régulière

Permis deux options:

var Expone = / abc * / i;

var expTwo = RegExp ( "abc *", "i");

En général, il utilise la première méthode. Dans le second cas, les citations, parce que d'utiliser le caractère « », il doit être échappé par les règles générales.

«Je – drapeau indiquant « insensible à la casse ». Vous pouvez également utiliser des indicateurs de g « -« Recherche globale » et « m » – une recherche sur plusieurs lignes.

Le symbole « / » pour indiquer commun d'utiliser un modèle.

Le début et la fin de l'expression régulière

Le « ^ » définit le caractère (s) à partir de laquelle commencer l'expression régulière, et le « $ » détermine quel caractère (s) doit être à la fin. Vous ne devriez pas expérimenter avec eux dans une expression, où ils ont un sens différent.

Par exemple,

var eRegExp = new RegExp (cRegExp, 'i');

var cRegRes = '';

var Stest = 'ABCz';

si (eRegExp.test (STEST)) {

cRegRes + = '- Oui';

} Else {

cRegRes + = '- Non';

}

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'Expression /' + + 'cRegExp / en ligne "' + + 'STEST"' + cRegRes.

L'élément « scTestLine » résultera (variables cRegExp a un sens correspondant):

expression / ^ ABCz $ / la chaîne "abcz" – Oui

Si vous supprimez le drapeau « i », le résultat est le suivant:

expression / ^ ABCz $ / la chaîne "abcz" – Non

Le contenu d'une expression régulière

Une expression régulière est une séquence de caractères, qui fait l'objet de la recherche. Expression / qwerty / recherche d'entrée est cette séquence:

expression / qwerty / pour la chaîne "qwerty" – Oui

expression / qwerty / pour la chaîne "123qwerty456" – Oui

Les changements « ^ » sont des expressions:

expression / ^ qwerty / pour la chaîne "123qwerty456" – Non

expression / ^ qwerty / pour la chaîne "qwerty456" – Oui

De même, pour la fin du symbole de la ligne. Les expressions régulières permettent de cohérence: par exemple, [az], [AZ], [0-9] – toutes les lettres de l'alphabet dans ce cas ou chiffres. lettres russes peuvent également être utilisés, mais doivent prêter attention à l'encodage des chaînes (qui est recherché qui est recherché) et les pages. Souvent, les lettres russes, ainsi que des caractères spéciaux, il est préférable de définir des codes.

Lors de la formation d'une expression régulière peut spécifier des options pour la présence de certains symboles dans un endroit particulier, avec leur nombre donné comme suit: « * » = 0 répétition ou plusieurs fois; « + » = 1 ou plusieurs fois répétition; {1} est le même, que '+'; {N} = répétition exactement n fois; {N,} = n fois répétition ou plus; {N, m} = répétition de n à m fois.

En utilisant les supports, vous pouvez spécifier le jeu de caractères d'options. Il ressemble à ceci. [Abcd] = [ad] = tous les quatre symboles: 'a', 'b', 'c' ou 'd'. Vous pouvez spécifier autrement. Un caractère autre que ceux qui sont spécifiés dans l'ensemble: [^ abcd] = un caractère autre que « a », « b », « c » ou « d ». '? Il indique qu'à ce stade, le symbole ne peut pas être. '' spécifie un caractère autre que le saut de ligne indiquant. Ce ' n', ' r', ' u2028' ou ' u2029'. L'expression ' s * | S *' = '[ s | S] * signifie la recherche de tout caractère, y compris les nouvelles lignes.

Des versions simplifiées d'expression régulière

L'expression « [ s | S] * » – espace de recherche, ou l'absence de celui-ci, qui est tout ce qui est sur la ligne. Dans ce cas, le symbole de l 'indique un espace, et « S » – son absence.

De même, vous pouvez utiliser « d » pour rechercher les chiffres décimaux, et « D » trouver un caractère non numérique. Notation « f », « r » et « n » correspond à la forme d'alimentation, retour chariot et saut de ligne.

Le caractère de tabulation – 't', vertical – ' v'. La désignation ' w' trouve un caractère alphabet latin (lettres, chiffres, et la marque de soulignement) = [A-Za-z0-9_].

La dénomination ' W' est équivalent à [^ A-Za-z0-9_]. Cela signifie tout caractère qui n'est pas une lettre de l'alphabet, le numéro ou « _ ».

caractère de recherche ' 0' = recherche de caractères NUL. Recherche ' xHH' ou ' uHHHH' = code de caractère de recherche ou HHHH HH respectivement. H – chiffre hexadécimal.

libellé recommandé et le codage d'expression régulière

Toute expression régulière est important de soigneusement testé sur différentes versions des lignes.

Avec l'expérience de la création d'une erreur d'expression régulière sera plus petite, mais néanmoins doit toujours garder à l'esprit que leur propre connaissance des règles d'écriture des expressions régulières ne peut pas être vrai, surtout quand la « saison régulière » est transféré d'une langue à une autre.

Le choix entre classique (indication exacte) et une version simplifiée d'une expression régulière, il est préférable de préférer le premier. Après tout, dans les classiques est toujours clairement indiqué que les deux recherchés. Si l'expression régulière ou une chaîne de recherche ont des lettres russes, devrait conduire à un seul codant pour toutes les lignes et la page sur laquelle fonctionne trouver JavaScript code exécute une expression régulière.

Quand il y a un traitement de caractère, alphabet non latin, il est logique d'envisager une indication des codes de caractères, et non les personnages eux-mêmes.

Lors de la mise en œuvre des algorithmes de recherche dans l'expression régulière JavaScript doit être soigneusement vérifié. Il est particulièrement important de contrôler le codage des caractères.

Les parenthèses dans l'expression régulière

Les supports définissent les options pour le symbole, qui doit être ou ne pas être dans un certain endroit, et rond – variantes de séquence. Mais ce n'est une règle générale. De là ne fait pas exception, mais il y a une grande variété d'applications.

var cRegExp = "[az] * (png | jpg | gif).";

var eRegExp = new RegExp (cRegExp, 'i');

var cRegRes = '';

var Stest = 'picture.jpg';

si (eRegExp.test (STEST)) {

cRegRes + = '- Oui';

} Else {

cRegRes + = '- Non';

}

résultats:

/[az]*.(png|jpg|gif)/ expression de la ligne « picture.jpg » – Oui

expression /^[ad][az]*.(png|jpg|gif)/ pour la ligne "picture.jpg" – Non

/^[ad][az]*.(png|jpg|gif)/ expression de la ligne « apicture.jpg » – Oui

expression /^[ad][az]*.(png|jpg|gif)/ pour la ligne "apicture.jg" – Non

Il convient de noter que tous, puis un astérisque peut être présent zéro fois. Cela signifie que la « saison régulière » pourrait fonctionner de manière inattendue au moins.

Vérifiez RegExp – email test

A l'expression régulière JavaScript obtenu deux méthodes, de test et exec, et peut être utilisé dans des objets lignes (cordes) dans leurs méthodes (fonctions): recherche, Split, remplacer et correspondance.

méthode d'essai a déjà été démontré, il vous permet de vérifier l'exactitude de l'expression régulière. Méthode Résultat: true / false.

Considérez les expressions régulières JavaScript suivantes. Recevoir du courrier électronique du nombre de « difficile, mais certainement »:

var eRegExp = /^(([^()[]\.,;:s@"]+(.[^()[]\.,;:s @ "] +) *) | (". + « )) @ (( [[0-9] {1,3} [0-9] {1,3} [0-9] {.. . 1,3} [0-9] {1,3}]) | (. ([a-zA-Z -0-9] + ) + [a-zA-Z] {2}) ) $ /;

une chaîne var STEST ='[email protected] « donne vrai, alors il y a cette chaîne est l'adresse email correcte. La vérification a été effectuée par eRegExp.test (STEST).

Utilisation pratique: Traitement de l'e-mail

Procédé Exec fournit la matrice de sortie, appel:

var aResult = eRegExp.exec (Stest);

cRegRes = '
' + aResult.length + '
';
for (var i = 0; i <aResult.length; i ++) {
cRegRes + = aResult [i] + '
';
}

Il donne le résultat suivant:

9
[email protected]
Slava.Chip
Slava.Chip
.Chip
non défini
sci.by
non défini
sci.by
science.

D'autres méthodes fonctionnent de la même. Il est recommandé de les vérifier par vous-même. Développement et utilisation des expressions régulières, il est souhaitable de travailler dans la pratique, la copie de code n'est pas toujours conseillé ici.

Populaire « saison régulière »

JavaScript expression régulière donnée non seulement eMail il y a beaucoup plus d'options faciles. Par exemple, /^[w-.]+@[w-]+.[az]{2,3}$/i. Cependant, ce mode de réalisation tient compte non tous les modes de réalisation de l'adresse e-mail enregistrement.

Bien sûr, vous devez voir l'expérience de collègues, d'analyser la façon dont leur propose avant de concevoir leur propre sur les expressions régulières JavaScript. Mais il y a des difficultés. Il ne faut pas oublier qu'une des expressions régulières JavaScript (exemples de lors de la copie) peuvent dupliquer les caractères essentiels: « », « / » ou citations. Cela conduira à une erreur, que vous pouvez chercher longtemps.

Il est important de prendre en compte l'habituel « dimension humaine ». Après JavaScript formelle expression régulière pour le téléphone, qui peut être le visiteur (personne), il est donné de différentes manières: 123-45-67, (29) 1234567, 80291234567 ou 375.291.234.567. Et il est tout le même numéro. Orthographe multiples modèles ne sont pas toujours acceptable, et une fixation rigide des règles d'écriture des nombres peut créer une gêne ou des restrictions inutiles. Option / ^ d [ d () -] {4,14} d $ / i est adapté pour la plupart des cas vous vérifiez votre numéro de téléphone.

Si vous souhaitez effectuer une expression régulière JavaScript, seuls les chèques chiffres, même un cas aussi simple demande des éclaircissements. Il doit être considéré comme un entier ou fractionnaire, la notation scientifique ou nombre normal, positif ou négatif. Vous pouvez également prendre en compte l'existence du symbole monétaire, le nombre de chiffres après la virgule et la division de la partie entière du nombre sur la triade.

Expression / ^ d + $ / i vérifier des chiffres et d'expression /^d+.d+$/i permet l'utilisation d'un point pour indiquer la partie décimale du nombre.

JavaScript vérification des expressions régulières peut être utilisé pour indiquer le format des données d'entrée dur, ce qui est important, en particulier lors de la saisie des profils, des données de passeport et adresse légale t. D.

Vérifiez les dates – simple au complexe

Prenons un autre des expressions régulières JavaScript. Des exemples à ce jour, comme le nombre de numéros de téléphone représentent le choix entre rigidité et flexibilité. Date de l'événement – une des données essentielles, qui doivent souvent être administrés. Mais fixer l'entrée dans un format spécifique: « dd-mm-aaaa « ou » d.m.gg « conduit souvent à l'insatisfaction des clients. Le passage du champ d'entrée du jour le mois, plein de HTML forme classique, ne peut avoir lieu lorsque vous entrez un seul chiffre, et la deuxième entrée peut être difficile. Par exemple, dans le domaine de la journée, il a été introduit 3 et le prochain numéro 2 ne remplace pas le premier, et est attribuée à ses 32, qui, bien sûr, causera des inconvénients.

L'efficacité et la commodité des expressions régulières dépendent essentiellement de la construction générale d'un dialogue avec le visiteur. Dans un cas, pour indiquer la date à laquelle il est conseillé d'utiliser un champ de saisie de la forme, dans l'autre cas, il est nécessaire de prévoir les différents champs pour le jour, le mois et l'année. Mais les « coûts de code » supplémentaires pour vérifier l'année bissextile, le nombre de mois, le nombre de jours en eux.

Rechercher et remplacer, la mémoire d'expression régulière

Remplacer JavaScript (expressions régulières) en utilisant la méthode de l'objet String, et nous permet de trouver la valeur et le changer immédiatement. Ceci est utile pour corriger les erreurs de frappe, modifier le contenu des champs de formulaire et pour convertir les données d'un format de présentation à l'autre.

var cRegExp = / ([a-z] +) s ([a-z] +) s ([a-z] +) / i; // lors de la recherche sont trois « variables »

var STEST = 'cet article est bon!';
var cRegRes = sTest.replace (cRegExp "$ 2, $ 3, $ 1");

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'expression' + cRegExp + 'pour la chaîne "' + '+ STEST" tour:' + cRegRes;

résultat:

expression / ([az] +) s ([az] +) s ([az] +) / i pour la ligne "cet article est bon!" out: l'article est bon, ça!

Lors de la réalisation de chaque paire de parenthèses stocke le résultat dans la « variable » n $, où n – nombre de paires de supports ($ 1, $ 2, …). Contrairement à la numérotation classique, ici variable est 1, pas 0.

recommandations générales

Expression régulière simplifie le code, mais le temps de le développer fait souvent une différence. Vous pouvez commencer avec des dessins simples, puis faites de combiner dans des expressions plus complexes. Vous pouvez utiliser différents services en ligne pour tester des expressions régulières ou des outils locaux spéciaux.

La meilleure option créer leur propre bibliothèque d'expressions régulières et leurs propres outils pour tester de nouveaux développements. Ceci est la meilleure façon de consolider l'expérience et d'apprendre comment construire rapidement conception fiable et confortable.

En utilisant la répétition des caractères et des chaînes, qui est, de la * 'caractères spéciaux, « + » et accolades, ce qui indique le nombre de répétitions doit être guidée par les principes de simplicité et de rapidité. Il est important de se rendre compte qu'une expression régulière au début de ses travaux, et pour obtenir le résultat est tout à fait dans la puissance du moteur utilisé par le navigateur. Toutes les langues sont équivalentes à JavaScript. Chaque navigateur peut apporter leurs préférences personnelles dans l'interprétation des expressions régulières.

La compatibilité est pas seulement des pages et des feuilles de style, à des expressions régulières, il a aussi à faire. La page Internet utilise Java script, peut être considéré comme un bon fonctionnement que lorsqu'il a travaillé avec succès sur divers navigateurs.

JavaScript, String et RegExp

Par le bon travail au niveau du client, qui est, il faut dans le navigateur du visiteur en JavaScript, des compétences élevées du développeur. Assez longtemps, vous avez la possibilité de fonds de débogage JavaScript code navigateur propres ou avec l'aide d'extensions tierces, éditeurs de code, les programmes indépendants.

Cependant, tous les cas, le débogueur peut gérer et fournir un bon support pour le développeur, une détection rapide des erreurs, détecter les goulots d'étranglement. Le temps où l'ordinateur a été axé sur les calculs, dans le passé lointain. Maintenant, accorder une attention particulière aux objets d'information et de ligne sont venus à jouer un rôle important. Le nombre de cordes en acier, et leur véritable nature, ils manifestent seulement au bon moment et au bon endroit.

Les expressions régulières renforcent la possibilité de lignes, mais exigent le respect de soi. Mise au point RegExp dans son travail, même s'il est possible de simuler, idée pas trop intéressante.

Comprendre la structure et la logique de l'objet RegExp, ce qui signifie objet String, la syntaxe et la sémantique de JavaScript – un véritable code de sécurité et sécurisé, le fonctionnement stable de chaque page et le site dans son ensemble.