Skip to content

Latest commit

 

History

History
54 lines (53 loc) · 2.94 KB

attribuDeValidationSEQUELIZE.md

File metadata and controls

54 lines (53 loc) · 2.94 KB
sequelize.define('foo', {
  bar: {
    type: DataTypes.STRING,
    validate: {
      is: /^[a-z]+$/i,          // correspond à cette RegExp
      is: ["^[a-z]+$",'i'],     // comme ci-dessus, mais en construisant la RegExp à partir d'une chaîne
      not: /^[a-z]+$/i,         // ne correspond pas à cette RegExp
      not: ["^[a-z]+$",'i'],    // comme ci-dessus, mais en construisant la RegExp à partir d'une chaîne
      isEmail: true,            // vérifie le format de l'e-mail ([email protected])
      isUrl: true,              // vérifie le format de l'URL (https://foo.com)
      isIP: true,               // vérifie le IPv4 (129.89.23.1) or IPv6 format
      isIPv4: true,             // vérifie le IPv4 (129.89.23.1)
      isIPv6: true,             // vérifie le IPv6 format
      isAlpha: true,            // n'autorisera que les lettres
      isAlphanumeric: true,     // n'autorisera que les caractères alphanumériques, donc "_abc" échouera
      isNumeric: true,          // n'autorisera que les nombres
      isInt: true,              // vérifie les entiers valides
      isFloat: true,            // vérifie les nombres à virgule flottante valides
      isDecimal: true,          // recherche tous les nombres
      isLowercase: true,        // vérifie les minuscules
      isUppercase: true,        // vérifie les majuscules
      notNull: true,            // n'autorisera pas null
      isNull: true,             // n'autorise que null
      notEmpty: true,           // ne pas autoriser les chaînes vides
      equals: 'specific value', // n'autoriser qu'une valeur spécifique
      contains: 'foo',          // forcer des sous-chaînes spécifiques
      notIn: [['foo', 'bar']],  // vérifier que la valeur n'en fait pas partie
      isIn: [['foo', 'bar']],   // vérifier que la valeur est l'une de celles-ci
      notContains: 'bar',       // ne pas autoriser les sous-chaînes spécifiques
      len: [2,10],              // autoriser uniquement les valeurs dont la longueur est comprise entre 2 et 10
      isUUID: 4,                // n'autoriser que les uuids
      isDate: true,             // n'autoriser que les chaînes de date
      isAfter: "2011-11-05",    // autoriser uniquement les chaînes de date après une date spécifique
      isBefore: "2011-11-05",   // autoriser uniquement les chaînes de date avant une date spécifique
      max: 23,                  // n'autoriser que les valeurs <= 23
      min: 23,                  // n'autoriser que les valeurs >= 23
      isCreditCard: true,       // vérifier les numéros de carte de crédit valides

    // Exemples de validateurs personnalisés :
      isEven(value) {
        if (parseInt(value) % 2 !== 0) {
          throw new Error('Only even values are allowed!');
        }
      }
      isGreaterThanOtherField(value) {
        if (parseInt(value) <= parseInt(this.otherField)) {
          throw new Error('Bar must be greater than otherField.');
        }
      }
    }
  }
});