Fermer

juin 9, 2021

Validation et transformation des données avec les nouveaux opérateurs Corticon


Dans les versions récentes de Corticon, nous avons ajouté un tas de nouveaux opérateurs à divers types de données, en fonction des demandes des clients.

Les nouveaux opérateurs utilisant des expressions régulières sont particulièrement intéressants. Les expressions régulières sont si riches qu'un très grand nombre de nouveaux cas d'utilisation est désormais possible. Ainsi, dans ce blog, nous verrons ce que sont les expressions régulières et nous plongerons dans des cas d'utilisation et des exemples d'utilisation du nouvel opérateur String.matches. Ce que vous apprendrez pour cet opérateur s'applique directement au nouvel opérateur String.regexReplaceString car ils utilisent tous deux des expressions régulières en entrée.

Voici la liste complète des opérateurs ajoutés :

  • Integer.random
  • Decimal.random
  • String.replaceString
  • String.regexReplaceString 
  • String.matches

Que sont les expressions régulières (également appelées Regex) ?

Il s'agit d'un langage de modèles de chaîne et sont utilisés pour la recherche de texte puissante, la manipulation et remplacement dans de nombreux langages de programmation. Par exemple, avec une seule expression, vous pouvez valider qu'une chaîne contient une adresse e-mail. Ou que la chaîne contient une adresse e-mail d'une entreprise spécifique, par exemple progress.com. Ou qu'un champ contient un nom d'État sous forme complète ou abrégée (Ma ou Massachusetts ou Mass) ou valider qu'un champ contient le nom de pays appartenant à la CEE.

Ils sont couramment utilisés pour valider des champs comme le téléphone numéros, numéros de sécurité sociale, e-mails, etc.

Cependant, la bonne nouvelle est que de nombreux cas ont déjà été résolus pour vous et une recherche Google vous donnera généralement immédiatement ce dont vous avez besoin, et si ce n'est pas exactement ce dont vous avez besoin, vous ne sera pas loin pour la solution finale. Par exemple, pour faire correspondre des dates valides : https://www.regular-expressions.info/dates.html

Il existe également de nombreux outils pour créer des expressions régulières. Voici un outil en ligne très utile https://regexr.com/ qui fournit entre autres des explications sur les expressions ainsi qu'un catalogue d'expressions régulières soumis par la communauté interrogeable.

Cas d'utilisation

Les opérateurs String.matches et String.regexReplaceString peuvent être utilisés pour la validation des données ainsi que pour la transformation de données basée sur des règles en général.

Vous trouverez ci-dessous deux exemples :

Exemple 1 : valider qu'un champ a un identifiant valide.

Pour illustrer, disons, les articles d'une entreprise sont identifiés de manière unique à l'aide du modèle suivant :

  1. Les cinq premiers caractères de l'article no. sera l'alphabet.
  2. Les quatre caractères suivants seront uniquement des chiffres.
  3. Le dernier caractère sera à nouveau un alphabet.

Par exemple, COMps739B

Voici comment l'opérateur serait utilisé pour valider la chaîne d'entrée est valide :

Ent1.isValid = Ent1.MyString1.matches ( '[A-Z,a-z]{5}[0-9]{4}[A-Z,a-z]{1}' )

Exemple 2 : Une chaîne contient-elle un adresse e-mail valide ?

Ent1.emailAddressCorrect = Ent1.MyString1.matches ( '[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$' )

En utilisant l'opérateur String.regexReplaceString, vous pouvez utiliser les mêmes expressions régulières pour nettoyer les chaînes. Par exemple, vous pouvez masquer les adresses e-mail renvoyées dans une charge utile pour des raisons de confidentialité. Ceci est facilement réalisé avec ce nouvel opérateur comme dans l'exemple ci-dessous : L'expression suivante remplacera toute adresse e-mail par une chaîne de commentaire

Ent1.MyString2 = Ent1.MyString1 .regexReplaceString ( '[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$',  '

Conclusion

Avec ces nouveaux opérateurs, vous pouvez désormais créer des règles qui effectuent une validation puissante des données et la transformation facilement et de manière productive.

Ils sont tous deux disponibles avec Corticon Classic Java et .Net ainsi qu'avec l'offre Serverless et frontale Corticon.js.

Si vous pensez que certaines expressions régulières sont si couramment utilisées qu'elles pourraient être élevés à leurs propres opérateurs, veuillez nous en informer. Par exemple, on pourrait imaginer des opérateurs comme isValidEmail ou isValidUSASocialSecurityNumber?

En outre, envoyez-nous une note si vous avez rencontré le besoin d'autres opérateurs.

Pour référence, voici une syntaxe détaillée pour chaque opérateur :

Integer.random

Syntaxe : random (minRange, maxRange)

Description : Cette fonction renvoie un entier aléatoire entre minRange et maxRange. Si maxRange est inférieur à minRange, maxRange devient minRange et minRange devient maxRange.

Decimal.random

Syntaxe : random (minRange, maxRange)

Description : Cette fonction renvoie une décimale aléatoire entre minRange et maxRange. Si maxRange est inférieur à minRange, maxRange devient minRange et minRange devient maxRange.

String.replaceString

Syntaxe : replaceString( stringToBeReplaced, replacementString )

Description : renvoie une nouvelle chaîne où les instances de chaîne à remplacer sont remplacées par la chaîne de remplacement.

String.regexReplaceString

Syntaxe : regexReplaceString (regularExpression, replacementString)

Description : renvoie une nouvelle chaîne où les chaînes correspondant à l'expression régulière sont remplacées par la chaîne de remplacement.

Exemples d'expressions régulières :

regexReplaceString("[0-9]", "X") : remplacera toutes les instances de chiffres par une lettre X

regexReplaceString(" {2,}", " ") : remplacera toutes les instances de plusieurs espaces par un seul espace

regexReplaceString("[aeiou]", "X") : remplacera toutes les voyelles par une lettre X[19659003]regexReplaceString("[^aeiou]", "X") : L'opposé de l'expression précédente. C'est-à-dire qu'il correspondra à tous les caractères autres que les voyelles, il remplacera donc toutes les consonnes par une lettre X

regexReplaceString("[a-m]", "1") : utilisation de l'expression de plage. Il fera correspondre tous les caractères de a à m et les remplacera par le caractère 1

String.matches

Syntaxe : matches ( regExp: String ) 

Description : Si l'expression régulière correspond à la chaîne , la fonction renverra true, sinon elle renverra false.

En savoir plus sur Corticon




Source link