@sumor/validator

محقق

أداة سومور كلاود.
معلومات إضافية

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

CI Test Coverage Audit

التثبيت

npm i @sumor/validator --save

المتطلبات

إصدار Node.JS

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

يتطلب نموذج ES Module لـ 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 فقط
    {
      id: 'ONLY_CHAR_DIGIT',
      expression: '^[a-zA-Z0-9]*$',
      message: 'السماح بالأحرف a-z, A-Z, 0-9 فقط'
    },
    // تحتاج لتضمين demo
    {
      id: 'INCLUDE_DEMO',
      expression: 'demo',
      message: 'تحتاج لتضمين demo'
    },
    // استخدام وظيفة للتحقق
    {
      id: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'يجب أن تكون الطول أكبر من 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) // [ 'السماح بالأحرف 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' ]

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

// ترجمة إلى اللغة الصينية التقليدية
const messages7 = validate(parameterInfo, 'de', 'zh-TW')
console.log(messages7) // [ 'فقط يُسمح بإدخال الأحرف والأرقام', 'تحتاج لتضمين demo', 'يجب أن يكون الطول أكبر من 5' ]

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

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'number',
  required: true,
  rule: [
    // تحتاج لأن يكون أكبر من 5
    {
      id: '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' ]

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

// ترجمة إلى اللغة الصينية التقليدية
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، سيحتفظ بعدد المحمولات 2 فقط

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