@sumor/validator

validateur

Un outil Sumor Cloud.
Documentation supplémentaire

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 Coverage Audit

Installation

npm i @sumor/validator --save

Prérequis

Version de Node.JS

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

Nécessite le 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 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: 'doit 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: 'seulement autoriser les lettres et 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 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', 'doit inclure demo' ]

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

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

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

Utilisation de la validation de nombre

import { validate } from '@sumor/validator'

const infoParamètre = {
  type: 'number',
  required: true,
  rule: [
    // besoin d'être supérieur à 5
    {
      id: 'SUPÉRIEUR_À_5',
      expression: value => {
        return value > 5
      },
      message: 'la valeur doit être supérieure à 5'
    }
  ],
  i18n: {
    zh: {
      SUPÉRIEUR_À_5: 'valeur doit être supérieure à 5'
    },
    'zh-TW': {
      SUPÉRIEUR_À_5: 'valeur doit être supérieure à 5'
    }
  }
}

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

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

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

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

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

Utilisation du format de chaîne

import { format } from '@sumor/validator'

const infoParamètre = {
  type: 'string'
}

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

Utilisation du format numérique

import { format } from '@sumor/validator'

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

const valeur1 = format(infoParamètre, 1.234)
console.log(valeur1) // affichera 1.23, garde uniquement 2 décimales

const valeur2 = format(infoParamètre, '1.234')
console.log(valeur2) // sera converti en nombre 1.23, garde uniquement 2 décimales