@sumor/validator

validateur

Un Sumor Cloud Outil.
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/validator --save

Prérequis

Version de Node.JS

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

Nécessite un module EC Node.JS

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

{
  "type": "module"
}

Utilisation

Utilisation de la validation de chaîne

import { validate } from '@sumor/validator'

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

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

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

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

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

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

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

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

Utilisation de la validation du nombre

import { validate } from '@sumor/validator'

const informationParamètre = {
  type: 'number',
  required: true,
  rule: [
    // doit être supérieur à 5
    {
      code: 'GREATER_THAN_5',
      expression: value => {
        return value > 5
      },
      message: 'la valeur doit être supérieure à 5'
    }
  ],
  i18n: {
    zh: {
      GREATER_THAN_5: 'la valeur doit être supérieure à 5'
    },
    'zh-TW': {
      GREATER_THAN_5: 'la valeur doit être supérieure à 5'
    }
  }
}

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

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

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

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

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

Utilisation de la mise en forme de chaîne

Utilisation de la suppression des espaces

supprime les espaces inutiles pour le préfixe et le suffixe

import { format } from '@sumor/validator'

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

const valeur = format(informationParamètre, ' demo ')
console.log(valeur) // affichera "demo", les espaces inutiles seront supprimés
Utilisation de la mise en minuscule

convertira la chaîne en minuscules

import { format } from '@sumor/validator'

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

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

convertira la chaîne en majuscules

import { format } from '@sumor/validator'

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

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

Utilisation de la mise en forme du nombre

import { format } from '@sumor/validator'

const informationParamètre = {
  type: 'number',
  décimal: 2
}

const valeur1 = format(informationParamètre, 1, 234)
console.log(valeur1) // affichera 1,23, uniquement 2 chiffres après la virgule

const valeur2 = format(informationParamètre, '1,234')
console.log(valeur2) // sera converti en nombre 1,23, uniquement 2 décimales seront conservées

Activer la sortie d'erreur

Si vous passez error:true, la réponse sera un objet SumorError. Vous pouvez changer de langue et exporter le support json avec @sumor/error

import { validate } from '@sumor/validator'

const informationParamètre = {
  type: 'string',
  required: true,
  longueur: 10,
  règle: [
    {
      code: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'la longueur doit être supérieure à 5'
    }
  ]
}

const messages = validate(informationParamètre, 'demo123456', 'en', vrai)
console.log(messages)
/* 
SumorError
{
  code: 'LENGTH_GREATER_THAN_5',
  message: 'la longueur doit être supérieure à 5'
}
*/