@sumor/validator

محقق

أداة Sumor Cloud.
وثائق إضافية

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

CI Test Coverage Audit

التثبيت

npm i @sumor/validator --save

المتطلبات المسبقة

إصدار Node.JS

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

يتطلب استخدام وحدة ES من Node.JS

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

{
  "type": "module"
}

الاستخدام

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

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // السماح بأحرف a-z, A-Z, 0-9 فقط
    {
      code: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'السماح بأحرف a-z, A-Z, 0-9 فقط'
    },
    // تحتاج إلى تضمين demo
    {
      code: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'تحتاج إلى تضمين demo'
    },
    // استخدام وظيفة للتحقق
    {
      code: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'يجب أن يكون الطول أكبر من 5'
    }
  ],
  i18n: {
    zh: {
      ONLY_CHAR_DIGIT: 'تم السماح بأحرف a-z, A-Z, 0-9 فقط',
      INCLUDE_DEMO: 'تحتاج إلى تضمين demo',
      LENGTH_GREATER_THAN_5: 'يجب أن يكون الطول أكبر من 5'
    },
    'zh-TW': {
      ONLY_CHAR_DIGIT: 'تم السماح بأحرف a-z, A-Z, 0-9 فقط',
      INCLUDE_DEMO: 'تحتاج إلى تضمين demo',
      LENGTH_GREATER_THAN_5: 'يجب أن يكون الطول أكبر من 5'
    }
  }
}

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

const messages2 = validate(parameterInfo, 'de1234567')
console.log(messages2) // [ 'السماح بأحرف a-z, A-Z, 0-9 فقط' ]

const messages3 = validate(parameterInfo, 'demo!')
console.log(messages3) // [ 'السماح بأحرف a-z, A-Z, 0-9 فقط', 'تحتاج إلى تضمين demo' ]

const messages4 = validate(parameterInfo, 'de!mo')
console.log(messages4) // [ 'السماح بأحرف a-z, A-Z, 0-9 فقط', 'تحتاج إلى تضمين demo' ]

const messages5 = validate(parameterInfo, 'de')
console.log(messages5) // [ 'السماح بأحرف a-z, A-Z, 0-9 فقط', 'تحتاج إلى تضمين demo', 'يجب أن يكون الطول أكبر من 5' ]

// ترجمة إلى zh
const messages6 = validate(parameterInfo, 'de', 'zh')
console.log(messages6) // [ 'تم السماح بأحرف a-z, A-Z, 0-9 فقط', 'تحتاج إلى تضمين demo', 'يجب أن يكون الطول أكبر من 5' ]

// ترجمة إلى zh-TW
const messages7 = validate(parameterInfo, 'de', 'zh-TW')
console.log(messages7) // [ 'تم السماح بأحرف a-z, A-Z, 0-9 فقط', 'تحتاج إلى تضمين demo', 'يجب أن يكون الطول أكبر من 5' ]

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

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  required: true,
  rule: [
    // يجب أن يكون أكبر من 5
    {
      code: 'GREATER_THAN_5',
      expression: value => {
        return value > 5
      },
      message: 'يجب أن يكون القيمة أكبر من 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) // [ 'يجب أن تكون القيمة أكبر من 5' ]

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

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

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

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

الاستخدام للقص

سيزيل الفراغ غير المستخدم للبادئة واللاحقة

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  trim: true // افتراضيًا يكون true لنوع string
}

const value = format(parameterInfo, ' demo ')
console.log(value) // سيظهر "demo"، سيتم إزالة الفراغ غير المستخدم