Maison > interface Web > js tutoriel > le corps du texte

Résumé de la définition des expressions régulières javascript (grammaire)_compétences javascript

WBOY
Libérer: 2016-05-16 15:21:05
original
933 Les gens l'ont consulté

Cet article parle de la définition des expressions régulières javascript (grammaire). Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Il existe deux façons de définir des expressions régulières : l'une consiste à appeler RegExp() directement et la seconde consiste à la définir directement avec des littéraux, c'est-à-dire var re = /regular Rule/;

Les deux méthodes de définition appellent essentiellement la méthode RegExp()

Lors de l'appel du même code normal, le comportement dans ECMAScript3 et ECMAScript5 est complètement différent

function reg(){
 var re = /\sjavascript/;
 return re;
}

Copier après la connexion

Appelez la méthode reg() plusieurs fois dans ECMAScript3 et ECMAScript5 respectivement

Dans ECMAScript3, le même objet RegExp est appelé, mais dans ECMAScript5, un objet RegExp différent est appelé car à chaque fois qu'il est exécuté dans EXCMAScript5, un nouvel objet RegExp est généré

Il y aura donc des dangers cachés dans le programme en ECMAScript3, car tant que l'objet est modifié à un endroit, tous les endroits appelant cet objet changeront.

1. Caractère direct

correspond généralement aux caractères directement dans les expressions régulières, telles que

/javascript/
Correspondra directement au caractère javascript

prend également en charge la correspondance de caractères autres que des lettres, tels que :

o Caractère NUL (u0000)

t Caractère de tabulation (u0009)

n Caractère de saut de ligne (u000A)

v Onglet vertical (u000B)

f Caractère de saut de page (u000C)

r Caractère de retour chariot (u000D)

xnn Caractère latin spécifié par le nombre hexadécimal nn, par exemple, x0A équivaut à

uxxxx Caractère Unicode spécifié par le nombre hexadécimal xxxx, par exemple u0009 est équivalent à

cX Caractère de contrôle ^X, par exemple, cJ est équivalent au caractère de nouvelle ligne n

Dans les expressions régulières, certains signes de ponctuation ayant une signification particulière doivent être échappés avec ''

^$.* ?=!:|/()[]{}

2. Classe de personnage

[...] Tout caractère entre crochets

[^...] Tout caractère non compris entre crochets

. N'importe quel personnage

w Tout mot composé de caractères ASCII, équivalent à [a-zA-Z0-9]

W Tout mot non composé de caractères ASCII, équivalent à [^a-zA-Z0-9]

N'importe quel espace Unicode

S Tout caractère d'espacement non Unicode, notez que w et S sont différents

d Toute valeur ASCII, équivalente à [0-9]

D Tout caractère sauf les nombres ASCII, équivalent à [^0-9]

[b] Littéral de retour arrière (cas particulier)

3. Répéter (nombre de fois)

? 0 ou 1 fois

1 fois ou plus

* N'importe quel nombre de fois

{n} n fois

{m,n} Minimum m fois, maximum n fois

{n,} n fois ou plus

La valeur par défaut pour les expressions régulières est la correspondance gourmande

Comme [a b ] Si vous voulez faire correspondre aaabb, cela ne correspondra pas à ab, aab, etc., cela ne correspondra qu'à aaabb

[a ?b ?] Cela correspondra à aaab Pourquoi y a-t-il cette différence ?

Réponse : ? Faisons une correspondance régulière non gourmande, alors b ne correspondra qu'à un b ici, alors pourquoi a correspond-il à 3 ? En effet, la correspondance de modèles d'expressions régulières recherche toujours la première position de correspondance possible dans la chaîne.

4. Options | Regroupement | Citations

| est utilisé pour séparer les caractères facultatifs, tels que [ab|cd], qui peuvent correspondre à ab ou cd Remarque :  : L'ordre de tentative de correspondance des éléments sélectionnés est gauche → droite, donc. [a|ab], quand a correspond, ab ne correspondra pas, même si ab est une meilleure correspondance

() 1. Les éléments individuels sont traités comme des sous-expressions /java(script)?/ Peut correspondre à javascript et java Autrement dit, la partie parenthèses forme une sous-expression et vous pouvez effectuer | * et d'autres opérations sur la sous-expression

2. Définir des sous-motifs dans le motif complet. Ce dernier peut faire référence à l'expression entre parenthèses /(['"])[a-z]1/ 1 fait référence à l'expression entre les premières parenthèses, donc Cité [. '"]

3. Faites référence à la sous-expression précédente à la fin Remarque : /['"][a-z]['"]/ Cette expression régulière signifie un guillemet simple ou un guillemet double plus une lettre minuscule plus le simple précédent guillemet ou guillemet double, et les guillemets simples et doubles précédents et suivants ne correspondent pas. Si vous souhaitez faire correspondre, vous pouvez écrire comme ceci [(['"])[a-z]1]

.

Ajouter des chiffres Vous pouvez citer l'expression entre parenthèses précédentes

5. Précisez la position correspondante (point d'ancrage)

^ Correspond au début d'une chaîne. Lors d'une récupération multiligne, correspond au début d'une ligne

.

$ Correspond à la fin d'une chaîne. En récupération multi-lignes, correspond à la fin d'une ligne

b Correspond à la limite d'un mot, bref, c'est la position entre les caractères w et W, ou la position entre le caractère w et le début ou la fin de la chaîne

B Correspond à la position d'une limite autre qu'un mot

(?=p) L'assertion prospective de largeur nulle nécessite que les caractères suivants correspondent à p, mais ne peut pas inclure les caractères qui correspondent à p

(?!p) L'assertion d'anticipation négative de largeur nulle nécessite que le caractère suivant ne corresponde pas à p

6. Modificateurs

est écrit à droite du littéral de l'expression régulière //

i effectue une correspondance insensible à la casse

g effectue une correspondance globale, en bref, il trouve toutes les correspondances au lieu de s'arrêter après avoir trouvé la première

m Modèle de correspondance multi-lignes, ^ correspond au début d'une ligne et au début d'une chaîne, $ correspond à la fin d'une ligne et à la fin d'une chaîne /java$/m peut correspondre à javanfunc

Remarque : Lorsque l'expression régulière est globale, le lastIndex actuellement défini sera défini à la position actuelle à chaque fois que exec() et test() sont exécutés à partir de la position de lastIndex, donc. il est préférable de définir lastIndex sur 0 à chaque exécution.

J'espère que cet article sera utile à tout le monde dans la programmation JavaScript.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!