@sumor/validator

المحقق

أداة سومور كلاود.
مزيد من التوثيق

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

CI Test Coverage Audit

التثبيت

npm i @sumor/validator --save

المتطلبات

إصدار Node.JS

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

يتطلب استيراد Node.JS ES module

نظرًا لأن هذه الحزمة مكتوبة بلغة ES module, يرجى تغيير الكود التالي في ملف '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: 'فقط السماح بإدخال الحروف والأرقام',
      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' ]

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

// ترجمة إلى 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: [
    // احتاج إلى أكبر من 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 لنوع السلسلة
}

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

سيقوم بتحويل السلسلة إلى حروف صغيرة

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  lowercase: true
}

const value = format(parameterInfo, 'Demo')
console.log(value) // سيرجع "demo"، ستتم تحويل جميع الأحرف إلى حروف صغيرة
الاستخدام في تحويل الحرف الكبير

سيقوم بتحويل السلسلة إلى حروف كبيرة

import { format } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  uppercase: true
}

const value = format(parameterInfo, 'Demo')
console.log(value) // سيرجع "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، سيتم الاحتفاظ برقمين بعد الفاصلة

تمكين إخراج الخطأ

إذا قمت بتمرير error:true، سيكون الاستجابة كائن SumorError. يمكنك تغيير اللغة وتصدير دعم json من خلال @sumor/error

import { validate } from '@sumor/validator'

const parameterInfo = {
  error: true,
  type: 'string',
  required: true,
  length: 10,
  rule: [
    {
      code: 'LENGTH_GREATER_THAN_5',
      expression: value => {
        return value.length > 5
      },
      message: 'يجب أن يكون الطول أكبر من 5'
    }
  ]
}

const messages = validate(parameterInfo, 'demo123456')
console.log(messages)
/* 
SumorError
{
  code: 'LENGTH_GREATER_THAN_5',
  message: 'يجب أن يكون الطول أكبر من 5'
}
*/