@sumor/validator

Validator

Ein Sumor Cloud Tool.
Mehr Dokumentation

Dies ist ein leichter Validierer für Node.JS. Es kann den Eingabestring oder die Eingabenummer basierend auf den von Ihnen definierten Regeln validieren.

CI Test Coverage 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 folgenden Code in Ihrer package.json Datei:

{
  "type": "module"
}

Verwendung

Verwendung für die Validierung von Zeichenfolgen

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // Nur a-z, A-Z, 0-9 zulassen
    {
      code: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'nur a-z, A-Z, 0-9 zulassen'
    },
    // Muss "demo" enthalten
    {
      code: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'muss "demo" enthalten'
    },
    // Verwendung einer 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 sind 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 sind 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 zulassen' ]

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

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

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

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

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

Verwendung für die Validierung von Zahlen

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' ]

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

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

Verwendung zur Formatierung von Zeichenfolgen

Trim-Verwendung

Entfernt unnötige Leerzeichen am Anfang und am Ende

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  trim: true // Standardmäßig ist dies für den Zeichenfolgentyp true
}

const value = format(parameterInfo, ' demo ')
console.log(value) // wird "demo" drucken, unnötige Leerzeichen werden entfernt
Kleinbuchstaben-Verwendung

Konvertiert die Zeichenfolge in Kleinbuchstaben

import { format } from '@sumor/validator'

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

const value = format(parameterInfo, 'Demo')
console.log(value) // wird "demo" drucken, alle Zeichen werden in Kleinbuchstaben konvertiert
Großbuchstaben-Verwendung

Konvertiert die Zeichenfolge in Großbuchstaben

import { format } from '@sumor/validator'

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

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

Verwendung zur Formatierung von Zahlen

import { format } from '@sumor/validator'

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

const value1 = format(parameterInfo, 1.234)
console.log(value1) // wird 1.23 drucken, nur 2 Dezimalstellen werden beibehalten

const value2 = format(parameterInfo, '1.234')
console.log(value2) // wird die Nummer 1.23 umwandeln, nur 2 Dezimalstellen werden beibehalten

Fehlerausgabe aktivieren

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

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')
console.log(messages)
/* 
SumorError
{
  code: 'LENGTH_GREATER_THAN_5',
  message: 'Länge sollte größer als 5 sein'
}
*/