@sumor/validator

validateur

Un outil Sumor Cloud.
Plus de documentations

Ceci est 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 définissez.

CI Test Coverage Audit

Installation

npm i @sumor/validator --save

Prérequis

Version de Node.JS

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

Nécessite un module ES de Node.JS

Comme ce package est écrit en module ES, 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 informationsParamè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 doit être supérieure à 5'
    }
  ],
  i18n: {
    zh: {
      ONLY_CHAR_DIGIT: '只允许输入字母和数字',
      INCLUDE_DEMO: '需要包含demo',
      LENGTH_GREATER_THAN_5: '长度应大于5'
    },
    'zh-TW': {
      ONLY_CHAR_DIGIT: '只允許輸入字母和數字',
      INCLUDE_DEMO: '需要包含demo',
      LENGTH_GREATER_THAN_5: '長度應大於5'
    }
  }
}

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

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

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

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

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

// traduction en zh
const messages6 = validate(informationsParamètre, 'de', 'zh')
console.log(messages6) // [ '只允许输入字母和数字', '需要包含demo', '长度应大于5' ]

// traduction en zh-TW
const messages7 = validate(informationsParamètre, 'de', 'zh-TW')
console.log(messages7) // [ '只允許輸入字母和數字', '需要包含demo', '長度應大於5' ]

Utilisation de la Validation de Nombre

import { validate } from '@sumor/validator'

const informationsParamètre = {
  type: 'number',
  required: true,
  rule: [
    // doit être supérieur à 5
    {
      id: 'GREATER_THAN_5',
      expression: value => {
        return value > 5
      },
      message: 'la valeur doit être supérieure à 5'
    }
  ],
  i18n: {
    zh: {
      GREATER_THAN_5: '值应大于5'
    },
    'zh-TW': {
      GREATER_THAN_5: '值應大於5'
    }
  }
}

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

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

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

// traduction en zh
const messages4 = validate(informationsParamètre, 4, 'zh')
console.log(messages4) // [ '值应大于5' ]

// traduction en zh-TW
const messages5 = validate(informationsParamètre, 4, 'zh-TW')
console.log(messages5) // [ '值應大於5' ]

Utilisation du Format de Chaîne

Utilisation de Trim

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

import { format } from '@sumor/validator'

const informationsParamètre = {
  type: 'string',
  trim: true // par défaut, true pour le type string
}

const valeur = format(informationsParamè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/validator'

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

const valeur = format(informationsParamè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/validator'

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

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

Utilisation du Format de Nombre

import { format } from '@sumor/validator'

const informationsParamètre = {
  type: 'number',
  decimal: 2
}

const valeur1 = format(informationsParamètre, 1.234)
console.log(valeur1) // affichera 1.23, ne conserver que 2 décimales

const valeur2 = format(informationsParamètre, '1.234')
console.log(valeur2) // sera converti en nombre 1.23, ne conserver que 2 décimales