Expressions régulières JavaScript

Syntaxe

Définition

Il existe deux façons de définir des expressions régulières en JavaScript : définir une chaîne qui correspond à une chaîne similaire à <%XXX%>

1. Constructeur

var reg=new RegExp('<%[^%>]+%>','g');


2. Littéral

var reg=/<%[^%>]%>/g;

g : recherche globale en texte intégral, la recherche par défaut doit s'arrêter après le premier résultat

i : ignorer la casse, ignorer la casse, sensible à la casse par défaut

m : plusieurs lignes, recherche sur plusieurs lignes (changez la signification de ^ et $ afin qu'ils correspondent respectivement au début et à la fin de la ligne sur n'importe quelle ligne, pas seulement au début et à la fin de la chaîne entière)


Métacaractères

Les expressions régulières sont intimidantes. Une raison importante est qu'il y a trop de caractères d'échappement et qu'il existe de nombreuses combinaisons. Cependant, les métacaractères des expressions régulières (en régulier. expressions Il n'y a pas beaucoup de caractères spéciaux ayant une signification particulière dans les expressions, qui peuvent être utilisés pour spécifier leurs caractères principaux)

métacaractères : ( [ { ^ $ | ) ? Chaque métacaractère a sa propre signification spécifique. Les métacaractères ont des significations différentes dans différentes combinaisons. Jetez un œil à la classification des

caractères spéciaux prédéfinis

caractères signifiant

caractère de tabulation de niveau t.

r Caractère de retour chariot

n Caractère de saut de ligne

f Caractère de saut de page

cX Caractère de contrôle correspondant à X (Ctrl+X)

v Onglet vertical

En principe, à un caractère régulier correspond un caractère. On peut les encadrer par [], de sorte que l'ensemble [] corresponde à un caractère. Tel que


alerte(/ruby/.test("ruby"));//true

alerte ( /[abc]/.test("a"));//true

alerte(/[abc]/.test("b"));//true

alert(/[abc]/.test("c"));//true

alert("une chauve-souris, un chat , une grosse chauve-souris, un gros chat".match(/[bcf]at/gi));//bat,Cat,fAt,bat,faT,cat


La classe négative

est également créée entre parenthèses. Ajoutez un métacaractère devant pour l'annuler, indiquant que la correspondance ne peut pas être celle des caractères entre parenthèses. .

alert(/[^abc]/.test("a"));//false

alerte(/[^abc]/.test("b"));//false

alerte(/[^abc]/.test("6")); //true

alerte(/[^abc]/.test("gg"));//true

Classe de portée

Faites toujours des histoires à l'intérieur des crochets. Parfois, il y a trop d'éléments correspondants, et les types sont les mêmes, et il est trop difficile de tous les saisir. Nous pouvons l'utiliser. La particularité est qu'une ligne horizontale est ajoutée au milieu.

Classe combinée

Faire encore des histoires entre crochets. Permet de faire correspondre différents types de caractères uniques à l'aide de crochets.

alerte(/[a-f]/.test("b"));//true

alerte (/[a-f]/.test("k"));//false

alerte(/[a-z]/.test("h"));//true

alerte(/[A-Z]/.test("gg"));//false

alerte(/[^H-Y]/ .test("G"));//true

alerte(/[0-9]/.test("8"));//true

alerte(/[^7-9]/.test("6"));//true

alerte(/[a- m1-5n]/.test("a"))//true

alerte(/[a-m1-5n]/.test("3")) //true

alerte(/[a-m1-5n]/.test(a))//true

alerte(/[a-m1-5n]/.test("r"))//false


pré Classe de définition


caractère est équivalent à description


. [ ^nr] Tous les caractères sauf le saut de ligne et le retour chariot

d [0-9] Caractères numériques

D [^0-9] Caractères non numériques

s [tnx0Bfr] Caractères vides

S [^ tnx0Bfr] Caractères non vides

w [a-zA-Z_0-9] Caractères de mots (toutes les lettres)

W [^a-zA-Z_0-9] Caractères autres que des mots


alerte(/d/.test("3"))//true

alerte(/d/.test("w"))/ /false

alerte(/D/.test("w"))//true

alerte(/w/.test( "w"))//true

alerte(/w/.test("SI"))//false

alerte( /W/.test("apprenti"))//true

alerte(/s/.test(" "))//true

alerte(/S/.test(" "))//false

alerte(/S/.test("positive"))//true

alerte(/./.test("美"))//true

alerte(/./.test(" "))// vrai

alerte(/./.test(a))//true


Méthodes d'objets String prenant en charge les expressions régulières

1. recherche( ) method;

Cette méthode est utilisée pour récupérer une sous-chaîne spécifiée dans une chaîne, ou pour récupérer une chaîne qui correspond à une expression régulière.

Syntaxe de base : stringObject.search(regexp);

@param Le paramètre regexp peut être la chaîne qui doit être récupérée dans stringObject, ou il peut s'agir de l'objet RegExp qui doit être récupéré.

@return (valeur de retour) La position de départ de la première sous-chaîne de stringObject qui correspond à l'objet regexp. Si aucune sous-chaîne correspondante n'est trouvée, -1 est renvoyé ;

Remarque : La méthode search() n'effectue pas de correspondance globale, elle ignorera l'indicateur g et n'a pas l'attribut lastIndex de l'objet regexp. , et toujours Il recherche à partir du début de la chaîne et renvoie toujours la première position correspondant à stringObject.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit W3cSchool!"; 
    var n = str.search(/3c/i);
    document.getElementById("demo").innerHTML = n;
}
</script>
</body>
</html>

2. méthode match()

Cette méthode est utilisée pour récupérer une valeur spécifiée dans une chaîne, ou en trouver une ou plusieurs. Une correspondance d'expressions régulières. Cette méthode est similaire à indexOf() ou lastIndexOf(); mais elle renvoie la valeur spécifiée, pas la position de la chaîne

Syntaxe de base :

stringObject.match(searchValue) ou stringObject ; .match(regexp)

@param (paramètre)

searchValue doit récupérer la valeur de la chaîne

regexp : l'objet RegExp qui doit correspondre au modèle ;

@return(return value) stocke le tableau des correspondances réussies ; il peut correspondre au modèle globalement. S'il correspond globalement, il renvoie un tableau. Si aucune correspondance n'est trouvée, alors il renverra null ; le tableau renvoyé a trois éléments, le premier élément stocke le texte correspondant et il y a deux attributs d'objet ; l'attribut input déclare une référence à l'objet stringObject ;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "hello world"; 
    var n = str.match("world");
    document.getElementById("demo").innerHTML = n;
}
</script>
</body>
</html>

3. Méthode replace() :

Cette méthode est utilisée pour remplacer certains caractères par d'autres caractères dans une chaîne, ou remplacer une sous-chaîne qui correspond à une expression régulière

Syntaxe de base : stringObject.replace (regexp/substr,replacement);

@param (paramètre)

regexp/substr ; objet String ou RegExp qui doit être remplacé.

remplacement : la valeur d'une chaîne, le texte à remplacer ou une fonction qui génère du texte de remplacement.

@return (valeur de retour) Renvoie la nouvelle chaîne après remplacement

Remarque : La méthode replace() de stringObject d'une chaîne effectue une opération de recherche et de remplacement. peut être soit une chaîne, soit un modèle de correspondance régulier. S'il s'agit d'un modèle de correspondance régulier, alors il peut être ajouté avec le modificateur g, qui représente un remplacement global. Sinon, il ne remplacera que la première chaîne correspondante

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点我</button>
<p id="demo">请访问网站</p>
<script>
function myFunction() {
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace("网站","php.cn");
    document.getElementById("demo").innerHTML = txt;
}
</script>
</body>
</html>
<. 🎜>

Méthode objet RegExp

Méthode test() :

Cette méthode. est utilisé pour détecter si une chaîne correspond à un certain modèle ;

Syntaxe de base : RegExpObject.test(str);

@param (paramètre) str est la chaîne qui doit être détectée ; 🎜>

@return (valeur de retour) Si la chaîne str contient du texte correspondant à RegExpObject, renvoie true, sinon renvoie false

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<script>
var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
</script>
</body>
</html>

méthode exec() :

. Cette méthode est utilisée pour récupérer les correspondances d'une expression régulière dans une chaîne.

Syntaxe de base : RegExpObject.exec(string)

@param (paramètre) : string [obligatoire] La chaîne à récupérer.

@return (valeur de retour) : renvoie un tableau pour stocker les résultats correspondants. Si aucune correspondance n'est trouvée, la valeur de retour est nulle.

Remarque : le premier élément du tableau renvoyé est ; le texte qui correspond à l'expression régulière. Cette méthode renvoie également deux attributs. L'attribut index déclare la position du premier caractère du texte correspondant ; l'attribut input stocke la chaîne récupérée ; si cette méthode n'est pas Globalement, le tableau renvoyé est ; le même que le tableau renvoyé par la méthode match().

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<script>
var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
</script>
</body>
</html>

Formation continue
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点我</button> <p id="demo">请访问网站</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("网站","php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel