@sumor/validator

محقق

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

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

التثبيت

npm i @sumor/validator --save

الشروط الأولية

إصدار Node.JS

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

يتطلب إصدار Node.JS للوحدة المتطورة ES

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

{
  "type": "module"
}

الاستخدام

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

import { validate } from '@sumor/validator'

const parameterInfo = {
  type: 'string',
  required: true,
  length: 10,
  rule: [
    // allow only 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' ]

// ترجمة إلى اللغة الصينية
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) // [ 'value should be greater than 5' ]

const messages3 = validate(parameterInfo, 4)
console.log(messages3) // [ 'value should be greater than 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، يتم الاحتفاظ بعددين بعد الفاصلة

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