@sumor/validator

جهاز التحقق

أداة Sumor Cloud.
مزيد من التوثيق

هذا هو جهاز التحقق الخفيف لـ Node.JS. يمكنه التحقق من سلسلة الإدخال أو الرقم استنادًا إلى القواعد التي حددتها.

CI Test Coverage Audit

التثبيت

npm i @sumor/validator --save

الشروط المسبقة

إصدار Node.JS

يتطلب إصدار Node.JS 16.x أو أعلى

يتطلب طريقة Node.JS ES

نظرًا لأن هذه الحزمة مكتوبة بتنسيق ES module، يرجى تغيير الكود التالي في ملف package.json الخاص بك:

{
  "type": "module"
}

الاستخدام

استخدام التحقق من السلسلة

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // only allow a-z, A-Z, 0-9
    {
      id: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'only allow a-z, A-Z, 0-9'
    },
    // need include demo
    {
      id: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'need include demo'
    },
    // use function to check
    {
      id: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'length should be greater than 5'
    }
  ],
  i18n: {
    zh: {
      ONLY_CHAR_DIGIT: 'فقط السماح بالحروف والأرقام',
      INCLUDE_DEMO: 'يجب تضمين demo',
      LENGTH_GREATER_THAN_5: 'يجب أن يكون الطول أكبر من 5'
    },
    'zh-TW': {
      ONLY_CHAR_DIGIT: 'فقط السماح بالحروف والأرقام',
      INCLUDE_DEMO: 'يجب تضمين demo',
      LENGTH_GREATER_THAN_5: 'يجب أن يكون الطول أكبر من 5'
    }
  }
}

const messages1 = validate(parameterInfo, 'demo123456')
console.log(messages1) // []

const messages2 = validate(parameterInfo, 'de1234567')
console.log(messages2) // [ 'only allow a-z, A-Z, 0-9' ]

const messages3 = validate(parameterInfo, 'demo!')
console.log(messages3) // [ 'only allow a-z, A-Z, 0-9', 'need include demo' ]

const messages4 = validate(parameterInfo, 'de!mo')
console.log(messages4) // [ 'only allow a-z, A-Z, 0-9', 'need include demo' ]

const messages5 = validate(parameterInfo, 'de')
console.log(messages5) // [ 'only allow a-z, A-Z, 0-9', 'need include demo', 'length should be greater than 5' ]

// translate to zh
const messages6 = validate(parameterInfo, 'de', 'zh')
console.log(messages6) // [ 'فقط السماح بالحروف والأرقام', 'يجب تضمين demo', 'يجب أن يكون الطول أكبر من 5' ]

// translate to zh-TW
const messages7 = validate(parameterInfo, 'de', 'zh-TW')
console.log(messages7) // [ 'فقط السماح بالحروف والأرقام', 'يجب تضمين demo', 'يجب أن يكون الطول أكبر من 5' ]

استخدام التحقق من الرقم

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  required: true,
  rule: [
    // need greater than 5
    {
      id: 'GREATER_THAN_5',
      expression: value => {
        return value > 5
      },
      message: 'value should be greater than 5'
    }
  ],
  i18n: {
    zh: {
      GREATER_THAN_5: 'يجب أن يكون القيمة أكبر من 5'
    },
    'zh-TW': {
      GREATER_THAN_5: 'يجب أن يكون القيمة أكبر من 5'
    }
  }
}

const messages1 = validate(parameterInfo, 6)
console.log(messages1) // []

const messages2 = validate(parameterInfo, 5)
console.log(messages2) // [ 'value should be greater than 5' ]

const messages3 = validate(parameterInfo, 4)
console.log(messages3) // [ 'value should be greater than 5' ]

// translate to zh
const messages4 = validate(parameterInfo, 4, 'zh')
console.log(messages4) // [ 'يجب أن يكون القيمة أكبر من 5' ]

// translate to zh-TW
const messages5 = validate(parameterInfo, 4, 'zh-TW')
console.log(messages5) // [ 'يجب أن يكون القيمة أكبر من 5' ]

استخدام تنسيق السلسلة

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string'
}

const value1 = format(parameterInfo, ' demo ')
console.log(value1) // سيطبع "demo"، سيتم إزالة المسافة الغير مفيدة

استخدام تنسيق الرقم

import { format } from '@sumor/validator'

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

const value1 = format(parameterInfo, 1.234)
console.log(value1) // سيطبع 1.23، سيتم الاحتفاظ برقمين بالعشري
const value2 = format(parameterInfo, '1.234')
console.log(value2) // سيتم تحويلها إلى الرقم 1.23، الاحتفاظ برقمين بالعشري