@sumor/validator

validator

Ein Sumor Cloud Tool.
Weitere Dokumentationen

Dies ist ein leichtgewichtiger Validator für Node.JS. Er kann den Eingabestring oder die eingegebene Zahl basierend auf den von Ihnen definierten Regeln validieren.

CI Test Abdeckung Audit

Installation

npm i @sumor/validator --save

Voraussetzungen

Node.JS Version

Erfordert Node.JS Version 16.x oder höher

Erforderliches Node.JS ES-Modul

Da dieses Paket in ES-Modul geschrieben ist, ändern Sie bitte den folgenden Code in Ihrer package.json-Datei:

{
  "type": "module"
}

Verwendung

Verwendung der String-Validierung

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // erlaube nur a-z, A-Z, 0-9
    {
      code: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'nur a-z, A-Z, 0-9 erlaubt'
    },
    // muss "demo" enthalten
    {
      code: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'muss "demo" enthalten'
    },
    // verwende eine Funktion zur Überprüfung
    {
      code: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'Länge sollte größer als 5 sein'
    }
  ],
  i18n: {
    zh: {
      ONLY_CHAR_DIGIT: 'nur Buchstaben und Zahlen erlaubt',
      INCLUDE_DEMO: 'muss "demo" enthalten',
      LENGTH_GREATER_THAN_5: 'Länge sollte größer als 5 sein'
    },
    'zh-TW': {
      ONLY_CHAR_DIGIT: 'nur Buchstaben und Zahlen erlaubt',
      INCLUDE_DEMO: 'muss "demo" enthalten',
      LENGTH_GREATER_THAN_5: 'Länge sollte größer als 5 sein'
    }
  }
}

const messages1 = validate(parameterInfo, 'demo123456')
console.log(messages1) // []

const messages2 = validate(parameterInfo, 'de1234567')
console.log(messages2) // [ 'nur a-z, A-Z, 0-9 erlaubt' ]

const messages3 = validate(parameterInfo, 'demo!')
console.log(messages3) // [ 'nur a-z, A-Z, 0-9 erlaubt', 'muss "demo" enthalten' ]

const messages4 = validate(parameterInfo, 'de!mo')
console.log(messages4) // [ 'nur a-z, A-Z, 0-9 erlaubt', 'muss "demo" enthalten' ]

const messages5 = validate(parameterInfo, 'de')
console.log(messages5) // [ 'nur a-z, A-Z, 0-9 erlaubt', 'muss "demo" enthalten', 'Länge sollte größer als 5 sein' ]

// Übersetzung in zh
const messages6 = validate(parameterInfo, 'de', 'zh')
console.log(messages6) // [ 'nur Buchstaben und Zahlen erlaubt', 'muss "demo" enthalten', 'Länge sollte größer als 5 sein' ]

// Übersetzung in zh-TW
const messages7 = validate(parameterInfo, 'de', 'zh-TW')
console.log(messages7) // [ 'nur Buchstaben und Zahlen erlaubt', 'muss "demo" enthalten', 'Länge sollte größer als 5 sein' ]

Verwendung der Zahlenvalidierung

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  required: true,
  rule: [
    // muss größer als 5 sein
    {
      code: 'GREATER_THAN_5',
      expression: value => {
        return value > 5
      },
      message: 'Wert sollte größer als 5 sein'
    }
  ],
  i18n: {
    zh: {
      GREATER_THAN_5: 'Wert sollte größer als 5 sein'
    },
    'zh-TW': {
      GREATER_THAN_5: 'Wert sollte größer als 5 sein'
    }
  }
}

const messages1 = validate(parameterInfo, 6)
console.log(messages1) // []

const messages2 = validate(parameterInfo, 5)
console.log(messages2) // [ 'Wert sollte größer als 5 sein' ]

const messages3 = validate(parameterInfo, 4)
console.log(messages3) // [ 'Wert sollte größer als 5 sein' ]

// Übersetzung in zh
const messages4 = validate(parameterInfo, 4, 'zh')
console.log(messages4) // [ 'Wert sollte größer als 5 sein' ]

// Übersetzung in zh-TW
const messages5 = validate(parameterInfo, 4, 'zh-TW')
console.log(messages5) // [ 'Wert sollte größer als 5 sein' ]

Formatierungszeichenfolgenverwendung

Trim-Verwendung

entfernt unnötige Leerzeichen am Anfang und am Ende

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  trim: true // standardmäßig für den Stringtyp auf true gesetzt
}

const value = format(parameterInfo, ' demo ')
console.log(value) // wird "demo" ausgeben, unnötige Leerzeichen werden entfernt
Kleinschreibung

wandelt die Zeichenfolge in Kleinbuchstaben um

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  lowercase: true
}

const value = format(parameterInfo, 'Demo')
console.log(value) // wird "demo" ausgeben, alle Zeichen werden in Kleinbuchstaben umgewandelt
Großschreibung

wandelt die Zeichenfolge in Großbuchstaben um

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  uppercase: true
}

const value = format(parameterInfo, 'Demo')
console.log(value) // wird "DEMO" ausgeben, alle Zeichen werden in Großbuchstaben umgewandelt

Verwendung von Zahlenformat

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  decimal: 2
}

const value1 = format(parameterInfo, 1.234)
console.log(value1) // wird 1.23 ausgeben, es werden nur 2 Nachkommastellen beibehalten

const value2 = format(parameterInfo, '1.234')
console.log(value2) // wird zu Zahl 1.23 konvertiert, es werden nur 2 Nachkommastellen beibehalten

Fehlerausgabe aktivieren

Wenn Sie error:true übergeben, wird die Antwort ein SumorError-Objekt sein. Sie können die Sprache ändern und JSON-Export unterstützen mit @sumor/error

import { validate } from '@sumor/validator'

const parameterInfo = {
  error: true,
  type: 'string',
  required: true,
  length: 10,
  rule: [
    {
      code: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'Länge sollte größer als 5 sein'
    }
  ]
}

const messages = validate(parameterInfo, 'demo123456', 'en', true)
console.log(messages)
/* 
SumorError
{
  code: 'LENGTH_GREATER_THAN_5',
  message: 'Länge sollte größer als 5 sein'
}
*/