@sumor/validator

Validator

Ein Sumor Cloud Tool.
Weitere Dokumentation

Dies ist ein leichtgewichtiger Validator für Node.JS. Er kann den Eingabestring oder die Eingabezahl anhand der von Ihnen definierten Regeln validieren.

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 Validierung von Strings

import { validate } from '@sumor/validator'

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

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

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

const messages5 = validate(parameterInfo, 'de')
console.log(messages5) // [ 'nur a-z, A-Z, 0-9 erlauben', '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 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' ]

// Ü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

Verwendung von Trim

entfernt unnötige Leerzeichen für Präfix und Suffix

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  trim: true // Standardmäßig true für String-Typ
}

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

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" ausgeben, alle Zeichen werden in Kleinbuchstaben umgewandelt
Großbuchstabenverwendung

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" ausgeben, alle Zeichen werden in Großbuchstaben umgewandelt

Formatierungsnummernverwendung

import { format } from '@sumor/validator'

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

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

const value2 = format(parameterInfo, '1.234')
console.log(value2) // wird in die Zahl 1.23 umgewandelt, nur 2 Dezimalstellen behalten

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 = {
  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'
}
*/