@sumor/validator

validator

Ein Sumor Cloud Tool.
Weitere Dokumentation

Das ist ein leichtgewichtiger Validator für Node.JS.
Er 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 den folgenden Code in Ihrer package.json-Datei:

{
  "type": "module"
}

Verwendung

Verwendung der Zeichenfolgenvalidierung

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'
    },
    // Verwenden Sie eine 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' ]

// Übersetzen auf 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' ]

// Übersetzen auf 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
    {
      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' ]

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

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

Format-Zeichenfolgenverwendung

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

Format-Zahlenverwendung

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 die Zahl 1.23 ausgeben, nur 2 Dezimalstellen werden beibehalten