Une bibliothèque de validateurs et de désinfectants de chaînes, basée sur la bibliothèque js validator.js
Pourquoi ne pas utiliser les bibliothèques Go populaires comme Package Validator ou Govalidator ? Bien que les deux bibliothèques soient bien connues, validatorgo se concentre sur la validation de chaînes autonome et fournit une vaste collection de validateurs personnalisables inspirés de validator.js, qu'aucune de ces bibliothèques Go n'implémente pleinement.
Voici comment validatorgo se démarque de go-playground/validator et govalidator :
Validation directe des chaînes : go-playground/validator est principalement conçu pour valider les champs de structure à l'aide de balises, ce qui est idéal pour gérer des données JSON ou basées sur une structure. Cependant, il n'est pas conçu pour valider des chaînes individuelles, ce que ValidatorGo fait de manière transparente, sans avoir besoin de balises struct ou de configuration supplémentaire.
Performance : go-playground/validator s'appuie sur la réflexion pour inspecter dynamiquement les balises struct. Bien que puissante, la réflexion peut entraîner une surcharge de performances, en particulier lorsque des structures de données volumineuses ou complexes sont validées. validatorgo évite la réflexion, ce qui améliore les performances, la rendant plus rapide et plus efficace pour les scénarios où des validations à champ unique sont nécessaires.
J'ai créé validatorgo pour servir de dépendance à une autre bibliothèque Go appelée ginvalidator, qui valide les requêtes HTTP dans les applications Web Go. Inspiré par express-validator, la bibliothèque de validation populaire pour Node.js et Express, ValidatorGo comble une lacune dans l'écosystème Go pour une validation de chaîne efficace, personnalisable et simple. Étant donné que les autres bibliothèques étaient soit excessives, manquaient de fonctionnalités ou ne répondaient pas à mon cas d'utilisation, j'ai construit validatorgo pour offrir une solution pratique.
Utiliser aller chercher.
go get github.com/bube054/validatorgo
Importez ensuite le package dans votre propre code.
import ( "fmt" "github.com/bube054/validatorgo" )
Si vous n'êtes pas satisfait de l'utilisation du nom long du package validateurgo, vous pouvez le faire.
go get github.com/bube054/validatorgo
import ( "fmt" "github.com/bube054/validatorgo" )
Vous trouverez ci-dessous une liste de validateurs fournis par le package validatorgo, qui couvre différents formats et types de chaînes, ce qui le rend polyvalent pour de multiples besoins de validation.
Validateur | Description |
---|---|
Contient | Vérifie si une chaîne contient une sous-chaîne spécifiée. |
Égal | Valide si une chaîne est exactement égale à une chaîne de comparaison. |
IsAbaRouting | Vérifie si la chaîne est un numéro de routage ABA valide (comptes bancaires américains). |
EstAprès | Valide si une chaîne de date est postérieure à une date spécifiée. |
EstAlpha | Garantit que la chaîne ne contient que des lettres (a-zA-Z). |
EstAlphanumérique | Valide si une chaîne contient uniquement des lettres et des chiffres. |
EstAscii | Vérifie si la chaîne contient uniquement des caractères ASCII. |
IsBase32 | Vérifie si la chaîne est une valeur codée en Base32 valide. |
IsBase64 | Valide si une chaîne est encodée Base64. |
EstAvant | S'assure que la date est antérieure à une date spécifiée. |
EstBooléen | Vérifie si la chaîne est « vraie » ou « fausse ». |
IsCreditCard | Valide si la chaîne est un numéro de carte de crédit valide. |
IsCurrency | Vérifie si la chaîne est un format monétaire valide. |
EstDate | Valide si une chaîne est une date valide. |
EstDécimal | Assure que la chaîne représente un nombre décimal valide. |
EstEmail | Vérifie si la chaîne est un format d'adresse e-mail valide. |
EstVide | Valide si une chaîne est vide. |
EstFQDN | Vérifie si la chaîne est un nom de domaine complet. |
EstFloat | Assure que la chaîne représente un nombre à virgule flottante. |
IsHexColor | Valide si une chaîne est une couleur hexadécimale valide (par exemple, #FFFFFF). |
IsIP | Vérifie si la chaîne est une adresse IP valide (IPv4 ou IPv6). |
EstISO8601 | Valide si la chaîne est au format de date ISO8601. |
EstLongueur | Vérifie si la longueur de la chaîne se situe dans une plage spécifiée. |
IsMimeType | Valide si la chaîne est un type MIME valide. |
EstMobilePhone | Vérifie si la chaîne est un numéro de téléphone mobile valide pour les paramètres régionaux spécifiés. |
EstMongoID | Valide si la chaîne est un ObjectID MongoDB valide. |
EstNumérique | Garantit que la chaîne ne contient que des caractères numériques. |
IsPostalCode | Vérifie si la chaîne est un code postal valide pour les paramètres régionaux spécifiés. |
EstRFC3339 | Valide si la chaîne est au format de date RFC3339. |
EstSlug | Vérifie si la chaîne est compatible avec les URL (uniquement les lettres, les chiffres et les tirets). |
IsStrongPassword | Garantit que la chaîne répond aux exigences courantes en matière de force des mots de passe. |
EstURL | Valide si la chaîne est une URL. |
EstUUID | Vérifie si la chaîne est un UUID valide (versions 1 à 5). |
IsUpperCase | Assure que la chaîne est entièrement en majuscules. |
Est-ce que la TVA | Vérifie si la chaîne est un numéro de TVA valide pour les pays spécifiés. |
Matchs | Valide si la chaîne correspond à une expression régulière spécifiée. |
Ce tableau devrait couvrir la plupart des validateurs actuellement disponibles dans validatorgo. Assurez-vous de vous référer à la documentation du package pour une utilisation plus détaillée de chaque validateur.
⚠ Attention
Lorsque vous utilisez un validateur qui nécessite une structure d'options (soit un pointeur, soit un non-pointeur), fournissez toujours explicitement les valeurs de tous les champs de structure.
Contrairement à validator.js, où les champs manquants sont automatiquement définis par défaut, Go utilise des types stricts.
Cela signifie que les valeurs manquantes seront par défaut false pour les booléens, 0 pour les types numériques, etc.
Ne pas spécifier tous les champs pourrait entraîner un comportement inattendu si vous êtes habitué à la version JavaScript.
Exemples
go get github.com/bube054/validatorgo
import ( "fmt" "github.com/bube054/validatorgo" )
Sanitizer | Description |
---|---|
Trim | Removes whitespace from both ends of the string. |
LTrim | Removes whitespace from the left side of the string. |
RTrim | Removes whitespace from the right side of the string. |
ToLower | Converts the entire string to lowercase. |
ToUpper | Converts the entire string to uppercase. |
Escape | Escapes HTML characters in the string to prevent injection attacks. |
Unescape | Reverts escaped HTML characters back to normal characters. |
NormalizeEmail | Standardizes an email address, e.g., removing dots in Gmail addresses. |
Blacklist | Removes characters from the string that match specified characters or patterns. |
Whitelist | Retains only characters in the string that match specified characters or patterns. |
Replace | Replaces occurrences of a substring with a specified replacement. |
StripLow | Removes control characters, optionally allowing some specified ones. |
TrimSpace | Trims all types of whitespace from both ends of the string. |
ToBoolean | Converts common truthy and falsy values in strings into boolean true or false. |
ToInt | Converts a numeric string into an integer, if possible. |
ToFloat | Converts a numeric string into a floating-point number, if possible. |
Ces désinfectants sont souvent utilisés pour garantir la cohérence et la sécurité des données en supprimant ou en modifiant les caractères potentiellement indésirables ou dangereux.
Assurez-vous de vous référer à la documentation officielle de Validatorgo pour des implémentations spécifiques et des exemples de chaque désinfectant.
validatorgo est le choix idéal si vous avez besoin de :
Avec validatorgo, vous obtenez un outil spécialement conçu pour la validation de chaînes, prenant en charge les exigences des applications autonomes et Web dans Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!