Expressions régulières JavaScript
L'expression régulière (anglais : expression régulière, souvent abrégée en regex, regexp ou RE dans le code) utilise une seule chaîne pour décrire et faire correspondre une série de modèles de recherche de chaînes conformes à une certaine règle syntaxique.
Le mode de recherche peut être utilisé pour la recherche de texte et le remplacement de texte.
Qu'est-ce qu'une expression régulière ?
Une expression régulière est un modèle de recherche formé par une séquence de caractères.
Lorsque vous recherchez des données dans du texte, vous pouvez utiliser des modèles de recherche pour décrire ce que vous souhaitez interroger.
Une expression régulière peut être un caractère simple ou un motif plus complexe.
Les expressions régulières peuvent être utilisées pour toutes les opérations de recherche de texte et de remplacement de texte.
Syntaxe
/pattern/modifiers;
Exemple :
var patt = /phpl/i
Exemple d'analyse :
/php/i est une expression régulière.
php est un modèle (pour la récupération).
i est un modificateur (la recherche n'est pas sensible à la casse).
Utilisation des méthodes de chaîne
En JavaScript, les expressions régulières sont généralement utilisées avec deux méthodes de chaîne : recherche () et remplacer(). La méthode
search() est utilisée pour récupérer une sous-chaîne spécifiée dans une chaîne, ou pour récupérer une sous-chaîne qui correspond à une expression régulière et renvoie la position de départ de la sous-chaîne. La méthode
replace() est utilisée pour remplacer certains caractères par d'autres caractères dans une chaîne, ou pour remplacer une sous-chaîne qui correspond à une expression régulière.
la méthode search() utilise une expression régulière
instance
Utilisez des expressions régulières pour rechercher la chaîne "php.cn", sans tenir compte de la casse :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>搜索字符串 "php.cn", 并显示匹配的起始位置:</p> <button onclick="myFunction()">点我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit php.cn!"; var n = str.search(/php.cn/i); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
Exécutez le programme et essayez-le
recherche ( ) utilise la chaîne
La méthode de recherche peut prendre une chaîne comme paramètre. Les paramètres de chaîne seront convertis en expressions régulières :
Exemple
Récupérer la sous-chaîne de "php.cn" dans la chaîne :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>搜索字符串 "php.cn", 并显示匹配的起始位置:</p> <button onclick="myFunction()">点我</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit php.cn!"; var n = str.search("php.cn"); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
Exécutez le programme et essayez-le
La méthode replace() utilise des expressions régulières
Exemple
Utilisez des expressions régulières et ne respectez pas la casse pour remplacer Microsoft dans la chaîne par php.cn :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>替换 "microsoft" 为 "php.cn" :</p> <button onclick="myFunction()">点我</button> <p id="demo">请访问 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace(/microsoft/i,"php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Exécutez le programme pour l'essayer
La méthode replace() utilise une chaîne
La méthode replace() recevra une chaîne comme paramètre :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(php.cn)</title> </head> <body> <p>替换 "Microsoft" 为 "php.cn" :</p> <button onclick="myFunction()">点我</button> <p id="demo">请访问 Microsoft!</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("Microsoft","php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
Exécutez le programme pour essayer
Astuce :
Les paramètres d'expression régulière peuvent être utilisés dans la méthode ci-dessus (au lieu des paramètres de chaîne).
Les expressions régulières rendent la fonction de recherche plus puissante (comme l'insensibilité à la casse dans l'exemple).
Modificateur d'expression régulière
Le modificateur peut être insensible à la casse dans la recherche globale :
修饰符 | 描述 |
---|---|
i | 执行对大小写不敏感的匹配。 |
g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
m | 执行多行匹配。 |
Modèle d'expression régulière
Les crochets sont utilisés pour rechercher des caractères dans une certaine plage :
表达式 | 描述 |
---|---|
[abc] | 查找方括号之间的任何字符。 |
[0-9] | 查找任何从 0 至 9 的数字。 |
(x|y) | 查找任何以 | 分隔的选项。 |
élément Les caractères sont des caractères ayant une signification particulière :
元字符 | 描述 |
---|---|
d | 查找数字。 |
s | 查找空白字符。 |
b | 匹配单词边界。 |
uxxxx | 查找以十六进制数 xxxx 规定的 Unicode 字符。 |
Quantificateur :
量词 | 描述 |
---|---|
n+ | 匹配任何包含至少一个 n 的字符串。 |
n* | 匹配任何包含零个或多个 n 的字符串。 |
n? | 匹配任何包含零个或一个 n 的字符串。 |
Utilisation de l'objet RegExp
En JavaScript, un objet RegExp est un objet d'expression régulière avec des propriétés et des méthodes prédéfinies.
Utiliser test()
La méthode test() est une méthode d'expression régulière.
La méthode test() est utilisée pour détecter si une chaîne correspond à un certain modèle. Si la chaîne contient du texte correspondant, elle renvoie vrai, sinon elle renvoie faux.
L'exemple suivant est utilisé pour rechercher le caractère "e" dans une chaîne :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(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>
Exécutez le programme et essayez-le
Vous pouvez faire ce qui précède sans définir la variable d'expression régulière. Deux lignes de code peuvent être combinées en une seule :
/e/.test("Les meilleures choses de la vie sont gratuites !")
Utiliser exec()
La méthode exec() est une méthode d'expression régulière. La méthode
exec() est utilisée pour récupérer les correspondances d'une expression régulière dans une chaîne.
Cette fonction renvoie un tableau qui stocke les résultats correspondants. Si aucune correspondance n'est trouvée, la valeur de retour est nulle.
L'exemple suivant est utilisé pour rechercher la lettre « e » dans une chaîne :
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>PHP中文网(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>
Exécutez le programme pour l'essayer