@sumor/validator

validator

Ein Sumor Cloud Tool.
Weitere Dokumentation

Dies ist ein leichtgewichtiger Validator für Node.JS. Es kann den Eingabestring oder die 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

Stringvalidierung

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // Nur a-z, A-Z, 0-9 zulassen
    {
      id: 'NUR_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'nur a-z, A-Z, 0-9 zulassen'
    },
    // Muss "demo" enthalten
    {
      id: 'ENTHÄLT_DEMO',
      expression: 'demo',
      message: 'muss "demo" enthalten'
    },
    // Funktion zur Überprüfung verwenden
    {
      id: 'LÄNGE_GRÖßER_5',
      expression: value => {
        return value.length > 5
      },
      message: 'Länge sollte größer als 5 sein'
    }
  ],
  i18n: {
    zh: {
      NUR_CHAR_DIGIT: 'nur Buchstaben und Zahlen erlaubt',
      ENTHÄLT_DEMO: 'muss "demo" enthalten',
      LÄNGE_GRÖßER_5: 'Länge sollte größer als 5 sein'
    },
    'zh-TW': {
      NUR_CHAR_DIGIT: 'nur Buchstaben und Zahlen erlaubt',
      ENTHÄLT_DEMO: 'muss "demo" enthalten',
      LÄNGE_GRÖßER_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' ]

// Übersetzung zu 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 zu 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' ]

Zahlenvalidierung

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  required: true,
  rule: [
    // Muss größer als 5 sein
    {
      id: 'GRÖßER_5',
      expression: value => {
        return value > 5
      },
      message: 'Wert sollte größer als 5 sein'
    }
  ],
  i18n: {
    zh: {
      GRÖßER_5: 'Wert sollte größer als 5 sein'
    },
    'zh-TW': {
      GRÖßER_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 zu zh
const messages4 = validate(parameterInfo, 4, 'zh')
console.log(messages4) // [ 'Wert sollte größer als 5 sein' ]

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

Stringformatierung

Trim-Nutzung

Entfernt überflüssige Leerzeichen für Präfix und Suffix

import { format } from '@sumor/validator'

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

const value = format(parameterInfo, ' demo ')
console.log(value) // wird "demo" ausgeben, überflüssige Leerzeichen werden entfernt
Kleinbuchstaben-Nutzung

Konvertiert den String 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 konvertiert
Großbuchstaben-Nutzung

Konvertiert den String 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 konvertiert

Zahlenformatierung

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 behalten

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