Maison  >  Article  >  interface Web  >  Notes d'étude JavaScript (8) Expressions régulières_connaissances de base

Notes d'étude JavaScript (8) Expressions régulières_connaissances de base

WBOY
WBOYoriginal
2016-05-16 16:34:441075parcourir

Concepts de base

Une expression régulière est un modèle de texte qui comprend à la fois des caractères ordinaires (par exemple, les lettres entre a et z) et des caractères spéciaux (appelés « métacaractères »). Un modèle décrit une ou plusieurs chaînes à rechercher lors de la recherche de texte.

Tout d'abord, nous recommandons plusieurs éditeurs d'expressions régulières
Debuggex : https://www.debuggex.com/
PyRegex :http://www.pyregex.com/
Regexper : http://www.regexper.com/

L'expression régulière est une opération de recherche et de remplacement de chaîne. Les expressions régulières sont largement utilisées dans les éditeurs de texte. Par exemple, les expressions régulières sont utilisées :
. [copie] Vérifiez si le texte contient le mot caractéristique spécifié
Trouvez la position des mots caractéristiques correspondants dans le texte
Extraire des informations du texte, telles que : sous-chaîne de chaîne
Modifier le texte

Description : Les expressions régulières sont généralement utilisées pour deux tâches : 1. Vérification, 2. Rechercher/remplacer. Lorsqu'il est utilisé pour la vérification, il est généralement nécessaire d'ajouter ^ et $ avant et après pour correspondre à la chaîne entière à vérifier. L'ajout de cette limite lors de la recherche/remplacement dépend des exigences de recherche. ajoutez avant et après b au lieu de ^ et $. Les expressions régulières couramment utilisées répertoriées dans ce tableau ne sont précédées ou suivies d'aucune restriction, à l'exception de quelques-unes. Veuillez les gérer vous-même en fonction de vos besoins.

Commande prioritaire

Une fois qu'une expression régulière est construite, elle peut être évaluée comme une expression mathématique, c'est-à-dire qu'elle peut être évaluée de gauche à droite et dans un ordre de priorité. Le tableau suivant répertorie l'ordre de priorité des différents opérateurs d'expression régulière, de la priorité la plus élevée à la priorité la plus basse :

操作符 描述
转义符
(), (?:), (?=), [] 圆括号和方括号
*, , ?, {n}, {n,}, {n,m} 限定符
^, $, anymetacharacter 位置和顺序

Créer une expression régulière

Construire des expressions régulières revient à créer des expressions mathématiques. Autrement dit, utiliser une variété de métacaractères et d'opérateurs pour combiner de petites expressions afin de créer des expressions plus grandes.
Une expression régulière peut être construite en plaçant les différents composants du modèle d'expression entre une paire de délimiteurs.

Pour JScript, le délimiteur est une paire de caractères barre oblique (/). Par exemple :
/expression/

Pour VBScript, une paire de guillemets ("") est utilisée pour déterminer les limites de l'expression régulière. Par exemple :

Copier le code Le code est le suivant :

"expression"

Regardons un exemple

Copier le code Le code est le suivant :

//Si le compte correspondant est légal (commençant par une lettre, 5 à 16 octets autorisés, traits de soulignement alphanumériques autorisés

var re =new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,19}$");
si(re.test(aaaa)){
alert("Format correct");
}autre{
alert("Erreur de format");
>

Les composants d'une expression régulière peuvent être un caractère unique, une collection de caractères, une plage de caractères, une sélection entre des caractères ou toute combinaison de tous ces composants.

Expressions régulières couramment utilisées

Expression régulière correspondant aux caractères chinois : [u4e00-u9fa5]
Commentaire : Faire correspondre le chinois est vraiment un casse-tête. Avec cette expression, ce sera plus facile

.

Faire correspondre les caractères à deux octets (y compris les caractères chinois) : [^x00-xff]
Commentaire : Peut être utilisé pour calculer la longueur d'une chaîne (la longueur d'un caractère codé sur deux octets compte pour 2, et la longueur d'un caractère ASCII compte pour 1)

Expression régulière correspondant à des lignes vides : ns*r
Commentaire : Peut être utilisé pour supprimer des lignes vides

Expression régulière correspondant aux balises HTML : <(S*?)[^>]*>.*?|<.* />
Commentaire : La version qui circule sur Internet est dommage que celle ci-dessus ne puisse en correspondre qu'une partie, et elle est encore impuissante pour les balises imbriquées complexes

Expression régulière correspondant aux caractères d'espacement de début et de fin : ^s*|s*$
Commentaire : Il peut être utilisé pour supprimer les caractères d'espacement en début et en fin de ligne (y compris les espaces, les tabulations, les sauts de formulaire, etc.), une expression très utile

Expression régulière correspondant aux adresses e-mail : w ([- .]w )*@w ([-.]w )*.w ([-.]w )*
Commentaire : Très utile pour la validation de formulaire

URL correspondant à l'expression régulière : [a-zA-z]://[^s]*
Commentaire : La version qui circule sur Internet a des fonctions très limitées. Celle ci-dessus peut essentiellement répondre aux besoins

.

Le compte correspondant est-il légal (commençant par une lettre, 5 à 16 octets autorisés, traits de soulignement alphanumériques autorisés) : ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
Commentaire : Très utile pour la validation de formulaire

Faire correspondre les numéros de téléphone nationaux : d{3}-d{8}|d{4}-d{7}
Commentaire : Format correspondant tel que 0511-4405222 ou 021-87888822

Correspond au numéro QQ de Tencent : [1-9][0-9]{4,}
Commentaire : le compte Tencent QQ commence à partir de 10 000

Correspondre au code postal chinois : [1-9]d{5}(?!d)
Commentaire : Le code postal de la Chine est un nombre à 6 chiffres

Carte d'identité correspondante : d{15}|d{18}
Commentaire : la carte d’identité chinoise comporte 15 ou 18 chiffres

Correspondre à l'adresse IP : d .d .d .d
Commentaire : Utile lors de l'extraction de l'adresse IP

Faire correspondre des numéros spécifiques
[copie] ^[1-9]d*$  ​​​​​​// Faire correspondre les entiers positifs
^-[1-9]d*$ // Faire correspondre les entiers négatifs
^-?[1-9]d*$  ​​​​​​//Faire correspondre les entiers
^[1-9]d*|0$ // Fait correspondre les entiers non négatifs (entiers positifs 0)
^-[1-9]d*|0$  // Correspond aux entiers non positifs (entiers négatifs 0)
^[1-9]d*.d*|0.d*[1-9]d*$  ​​​​​​//Faire correspondre les nombres à virgule flottante positifs
^-([1-9]d*.d*|0.d*[1-9]d*)$ //Faire correspondre les nombres à virgule flottante négatifs
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0 |0)$ //Faire correspondre le nombre à virgule flottante
^[1-9]d*.d*|0.d*[1-9]d*|0?.0 |0$  //Faire correspondre les nombres à virgule flottante non négatifs (nombres à virgule flottante positifs 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0 |0$  //Faire correspondre les nombres à virgule flottante non positifs (nombres à virgule flottante négatifs 0)

Commentaire : utile lors du traitement de grandes quantités de données, veuillez faire attention aux corrections lors d'une demande spécifique

Correspondre à une chaîne spécifique
[copie]^[A-Za-z] $ // Correspond à une chaîne composée de 26 lettres anglaises
^[A-Z] $ // Correspond à une chaîne composée de 26 lettres anglaises majuscules
^[a-z] $ // Correspond à une chaîne composée de 26 lettres anglaises minuscules
^[A-Za-z0-9] $ // Correspond à une chaîne composée de chiffres et de 26 lettres anglaises
^w $  // Correspond à une chaîne composée de chiffres, de 26 lettres anglaises ou de traits de soulignement

Commentaires : Certaines des expressions les plus basiques et les plus couramment utilisées

Carte mentale

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn