@sumor/validator

validator

Ein Sumor Cloud Tool.
Weitere Dokumentation

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

Erfordern 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: [
    // nur a-z, A-Z, 0-9 erlauben
    {
      id: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'nur a-z, A-Z, 0-9 erlauben'
    },
    // muss demo enthalten
    {
      id: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'muss demo enthalten'
    },
    // Verwendung einer Funktion zur Überprüfung
    {
      id: '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 nach 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 nach 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 Nummernvalidierung

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  required: true,
  rule: [
    // größer als 5 sein
    {
      id: '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 nach zh
const messages4 = validate(parameterInfo, 4, 'zh')
console.log(messages4) // [ 'Wert sollte größer als 5 sein' ]

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

Formatierung-String-Verwendung

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string'
}

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

Formatierung-Nummernverwendung

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 werden beibehalten

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