@sumor/validator

validateur

Un outil de Sumor Cloud.
Plus de documentation

Il s'agit d'un validateur léger pour Node.JS. Il peut valider la chaîne d'entrée ou le nombre en fonction des règles que vous avez définies.

CI Test Couverture Audit

Installation

npm i @sumor/validateur --save

Prérequis

Version Node.JS

Nécessite la version Node.JS 16.x ou supérieure

nécessite un module ES Node.JS

Comme ce package est écrit en module ES, veuillez changer le code suivant dans votre fichier package.json :

{
  "type": "module"
}

Utilisation

Utilisation de la validation de chaîne

import { validate } from '@sumor/validateur'

const infoParamètre = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // autoriser uniquement a-z, A-Z, 0-9
    {
      id: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'autoriser uniquement a-z, A-Z, 0-9'
    },
    // besoin d'inclure demo
    {
      id: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'besoin d'inclure demo'
    },
    // utiliser une fonction pour vérifier
    {
      id: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'la longueur devrait être supérieure à 5'
    }
  ],
  i18n: {
    zh: {
      ONLY_CHAR_DIGIT: 'seulement autoriser les lettres et les chiffres',
      INCLUDE_DEMO: 'besoin d'inclure demo',
      LENGTH_GREATER_THAN_5: 'la longueur devrait être supérieure à 5'
    },
    'zh-TW': {
      ONLY_CHAR_DIGIT: 'seulement autoriser les lettres et les chiffres',
      INCLUDE_DEMO: 'besoin d'inclure demo',
      LENGTH_GREATER_THAN_5: 'la longueur devrait être supérieure à 5'
    }
  }
}

const messages1 = validate(infoParamètre, 'demo123456')
console.log(messages1) // []

const messages2 = validate(infoParamètre, 'de1234567')
console.log(messages2) // [ 'autoriser uniquement a-z, A-Z, 0-9' ]

const messages3 = validate(infoParamètre, 'demo!')
console.log(messages3) // [ 'autoriser uniquement a-z, A-Z, 0-9', 'besoin d'inclure demo' ]

const messages4 = validate(infoParamètre, 'de!mo')
console.log(messages4) // [ 'autoriser uniquement a-z, A-Z, 0-9', 'besoin d'inclure demo' ]

const messages5 = validate(infoParamètre, 'de')
console.log(messages5) // [ 'autoriser uniquement a-z, A-Z, 0-9', 'besoin d'inclure demo', 'la longueur devrait être supérieure à 5' ]

// traduire en zh
const messages6 = validate(infoParamètre, 'de', 'zh')
console.log(messages6) // [ 'seulement autoriser les lettres et les chiffres', 'besoin d'inclure demo', 'la longueur devrait être supérieure à 5' ]

// traduire en zh-TW
const messages7 = validate(infoParamètre, 'de', 'zh-TW')
console.log(messages7) // [ 'seulement autoriser les lettres et les chiffres', 'besoin d'inclure demo', 'la longueur devrait être supérieure à 5' ]

Utilisation de la validation de nombre

import { validate } from '@sumor/validateur'

const infoParamètre = {
  type: 'nombre',
  required: true,
  règle: [
    // besoin d'être supérieur à 5
    {
      id: 'GREATER_THAN_5',
      expression: value => {
        return value > 5
      },
      message: 'la valeur devrait être supérieure à 5'
    }
  ],
  i18n: {
    zh: {
      GREATER_THAN_5: 'la valeur devrait être supérieure à 5'
    },
    'zh-TW': {
      GREATER_THAN_5: 'la valeur devrait être supérieure à 5'
    }
  }
}

const messages1 = validate(infoParamètre, 6)
console.log(messages1) // []

const messages2 = validate(infoParamètre, 5)
console.log(messages2) // [ 'la valeur devrait être supérieure à 5' ]

const messages3 = validate(infoParamètre, 4)
console.log(messages3) // [ 'la valeur devrait être supérieure à 5' ]

// traduire en zh
const messages4 = validate(infoParamètre, 4, 'zh')
console.log(messages4) // [ 'la valeur devrait être supérieure à 5' ]

// traduire en zh-TW
const messages5 = validate(infoParamètre, 4, 'zh-TW')
console.log(messages5) // [ 'la valeur devrait être supérieure à 5' ]

Utilisation du format de chaîne

Utilisation du trim

supprimera l'espace inutile pour le préfixe et le suffixe

import { format } from '@sumor/validateur'

const infoParamètre = {
  type: 'string',
  trim: true // par défaut true pour le type de chaîne
}

const valeur = format(infoParamètre, ' demo ')
console.log(valeur) // affichera "demo", les espaces inutiles seront supprimés
Utilisation de lowercase

convertira la chaîne en minuscules

import { format } from '@sumor/validateur'

const infoParamètre = {
  type: 'string',
  lowercase: true
}

const valeur = format(infoParamètre, 'Demo')
console.log(valeur) // affichera "demo", tous les caractères seront convertis en minuscules
Utilisation de uppercase

convertira la chaîne en majuscules

import { format } from '@sumor/validateur'

const infoParamètre = {
  type: 'string',
  uppercase: true
}

const valeur = format(infoParamètre, 'Demo')
console.log(valeur) // affichera "DEMO", tous les caractères seront convertis en majuscules

Utilisation du format de nombre

import { format } from '@sumor/validateur'

const infoParametre = {
  type: 'nombre',
  décimal: 2
}

const valeur1 = format(infoParametre, 1.234)
console.log(valeur1) // affichera 1.23, seules 2 décimales seront conservées

const valeur2 = format(infoParametre, '1.234')
console.log(valeur2) // sera converti en nombre 1.23, seules 2 décimales seront conservées