Fermer

septembre 23, 2022

Astuce : tester si une chaîne correspond à une expression régulière en JavaScript


Dans ce bref didacticiel sur la correspondance d’expressions régulières JavaScript, vous apprendrez à tester si une chaîne correspond à une expression régulière à l’aide de la test() méthode.

Les chaînes sont des morceaux de texte qui peuvent contenir diverses données, telles que des URL, des numéros de téléphone, des noms, des numéros, etc. Dans de nombreux cas, vous devez vérifier si une chaîne contient ou non un morceau de texte ou certains types de caractères.

Lorsque vous testez si une chaîne contient une sous-chaîne spécifique, vous pourriez être enclin à utiliser une méthode telle que indexOf(). Cependant, pour des tests et des conditions plus flexibles, l’utilisation d’expressions régulières est une meilleure option.

La correspondance d’expressions régulières JavaScript vous permet de vérifier si une chaîne contient un modèle, une sous-chaîne ou des types de caractères spécifiques. Expressions régulières sont utiles pour détecter des informations dans une chaîne qui peuvent être écrites dans différents formats, tels que des dates.

Test des chaînes par rapport aux expressions régulières

Pour tester si une chaîne correspond à une expression régulière, vous devez d’abord créer une instance d’expression régulière. Ensuite, vous pouvez utiliser le test() méthode disponible sur l’expression régulière pour vérifier si la chaîne correspond à l’expression régulière ou non.

La test() La méthode accepte un paramètre : la chaîne à tester par rapport au modèle. Elle renvoie une valeur booléenne indiquant si la chaîne correspond ou non à l’expression régulière.

Par exemple:

const pattern = /test.*regular/;
const str = 'I want to test this string against a regular expression';
if (pattern.test(str)) {
  console.log('Matched');
} else {
  console.log('Not Matched');
}

Dans cet exemple, vous créez le motif test.*regular. Ce modèle signifie qu’une chaîne doit contenir les mots test et regular dans cet ordre, et que ces mots peuvent être séparés par zéro ou plusieurs occurrences de n’importe quel caractère.

Si test() renvoie vrai, Matched est connecté à la console. Autrement, Not Matched est connecté à la console.

Depuis str contient les mots test et regularet test précède regular dans la chaîne, il correspondra au motif et test() renverra vrai.

Vous pouvez également utiliser le RegExp constructeur pour déclarer les motifs :

const pattern = new RegExp('test.*regular');
const str = 'I want to test this string against a regular expression';
if (pattern.test(str)) {
  console.log('Matched');
} else {
  console.log('Not Matched');
}

Vous pouvez tester cela dans la démo CodePen suivante.

Voir le stylo
Tester une chaîne par rapport à une expression régulière
par SitePoint (@SitePoint)
sur CodePen.

Exemples courants

Cette section montre quelques exemples d’utilisation de la correspondance d’expressions régulières JavaScript pour tester des cas d’utilisation courants. Il convient de noter que les expressions régulières ici peuvent ne pas être la solution parfaite dans chaque cas. Ils sont chacun utilisés pour donner un exemple simple du fonctionnement du processus.

Tester les URL

Vous pouvez tester si une chaîne est une URL à l’aide d’expressions régulières. Vous pouvez expérimenter cela en utilisant la démo CodePen suivante.

Voir le stylo
Tester si une chaîne est une URL en JavaScript
par SitePoint (@SitePoint)
sur CodePen.

Veuillez noter que le modèle d’expression régulière utilisé ci-dessus s’attend à ce que l’URL commence par http:// ou https://.

Tester les e-mails

Vous pouvez tester si une chaîne est une adresse e-mail valide à l’aide d’expressions régulières. La démo CodePen suivante montre comment.

Voir le stylo
Le test est une chaîne est un e-mail en JS
par SitePoint (@SitePoint)
sur CodePen.

Dates des tests

Vous pouvez tester si une chaîne est une date à l’aide d’expressions régulières. La démonstration CodePen suivante montre comment cela peut être fait.

Voir le stylo
Tester si une chaîne est une date en JavaScript
par SitePoint (@SitePoint)
sur CodePen.

Veuillez noter que le modèle d’expression régulière utilisé ci-dessus s’attend à ce que la date soit au format « JJ-MM-AAAA » ou « JJ/MM/AAAA ».

Autres méthodes de correspondance JavaScript Regex

Il existe d’autres méthodes pour tester si une chaîne correspond à une expression régulière. Cet article ne les couvre pas tous, mais en voici un bref aperçu :

  • match. Cette méthode est disponible sur les chaînes. Il accepte une expression régulière comme paramètre et récupère les parties de la chaîne qui correspondent à l’expression régulière, s’il y en a.
  • chercher. Cette méthode est disponible sur les chaînes. Il accepte une expression régulière en tant que paramètre, recherche si le modèle d’expression régulière existe dans la chaîne et récupère l’index de la première occurrence du modèle dans la chaîne s’il existe.
  • exec. Cette méthode est disponible sur les expressions régulières. Il accepte une chaîne en tant que paramètre, recherche le modèle d’expression régulière dans la chaîne et récupère les résultats, s’il y en a.

Conclusion

Les expressions régulières sont très utiles pour tester si une chaîne contient un certain modèle ou une sous-chaîne. Avec la correspondance d’expressions régulières JavaScript, vous pouvez vérifier si une chaîne est une URL, une date, une adresse IP ou d’autres types et formats.

Par rapport à l’utilisation d’autres méthodes comme indexOf()la test() La méthode disponible sur les expressions régulières vous donne plus de flexibilité lors du test si une chaîne correspond à un modèle ou non.

Lecture connexe :




Source link

septembre 23, 2022