0Pricing
React Academy · درس

قواعد التحقق ورسائل الخطأ

طبّق قواعد التحقق المضمّنة (required وminLength وpattern) واعرض رسائل الخطأ.

قواعد التحقق ورسائل الخطأ درس مجاني في React Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

مرحبًا

في هذا الدرس ستضيفون قواعد تحقق مضمّنة إلى حقول React Hook Form، وستعرضون رسائل خطأ واضحة للمستخدم أسفل كل إدخال.

قواعد التحقق المضمّنة

مرّروا كائن القواعد باعتباره الوسيط الثاني إلى register(). تشمل القواعد المضمّنة: `required` و`minLength` و`maxLength` و`min` و`max` و`pattern` و`validate`.
<input
  {...register('email', {
    required: 'Email is required',
    pattern: {
      value: /^[^@]+@[^@]+\.[^@]+$/,
      message: 'Invalid email address',
    },
  })}
/>

الحقول المطلوبة

اضبطوا `required` على سلسلة نصية لجعل الحقل مطلوبًا. تصبح هذه السلسلة رسالة الخطأ. أما ضبطه على `true` فيستخدم رسالة عامة.
register('name', { required: 'Name is required' })
// or
register('name', { required: true })

قيود الطول

استخدموا `minLength` و`maxLength` مع كائن `{ value, message }` لتحديد حدود عدد المحارف ورسائل خطأ مخصّصة.
register('username', {
  minLength: { value: 3, message: 'At least 3 characters' },
  maxLength: { value: 20, message: 'At most 20 characters' },
})

التحقق باستخدام النمط

تقبل قاعدة `pattern` قيمة RegExp. استخدموها للتحقق من صيغ البريد الإلكتروني، وأرقام الهواتف، أو أي نمط لسلسلة نصية.
register('phone', {
  pattern: {
    value: /^[0-9]{10,11}$/,
    message: 'Enter a valid phone number',
  },
})

عرض الأخطاء

اقرؤوا كائن `errors` من formState. يحتوي كل حقل أخفق في التحقق على إدخال يتضمن الخاصية `message`. اعرضوها أسفل الإدخال بشكل شرطي.
const { register, handleSubmit, formState: { errors } } = useForm();

<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}

التحقق المخصّص باستخدام validate

تقبل قاعدة `validate` دالة تُرجع `true` عند صلاحية القيمة، أو سلسلة خطأ عند عدم صلاحيتها. استخدموها لمنطق الأعمال الذي لا يمكن للقواعد المضمّنة التعبير عنه.
register('age', {
  validate: value =>
    parseInt(value) >= 18 || 'You must be at least 18',
})

أدوات تحقق مخصّصة متعددة

مرّروا كائنًا من أدوات التحقق المسماة إلى `validate` لتشغيل عمليات تحقق مخصّصة متعددة على الحقل نفسه.
register('password', {
  validate: {
    hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
    hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
  }
})

عرض عدد الأخطاء

احسبوا العدد الإجمالي للأخطاء لتمكين زر الإرسال أو تعطيله، أو لعرض ملخص. استخدموا Object.keys(errors).length.
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>

تنسيق حقول الإدخال التي تحتوي على أخطاء

طبّقوا فئة CSS على حقول الإدخال التي تحتوي على أخطاء لإظهار حد أحمر مرئي. تحقّقوا من errors[fieldName] لتطبيق الفئة بشكل شرطي.
<input
  {...register('email', { required: true })}
  className={errors.email ? 'input-error' : ''}
/>

تحقّق سريع

كيف تعرضون رسالة الخطأ لحقل اسمه 'email' في React Hook Form؟

مراجعة

أضيفوا قواعد التحقق باعتبارها الوسيط الثاني إلى register(): required وminLength وmaxLength وpattern وmin وmax وvalidate. اقرؤوا errors[fieldName].message من formState لعرض الرسائل.

التالي

الدرس التالي: **التحقق من المخطط باستخدام Zod** — ستدمجون @hookform/resolvers ومخططات Zod للتحقق من صحة النماذج مع أمان الأنواع.

الأسئلة الشائعة

هل درس «قواعد التحقق ورسائل الخطأ» مجاني؟

نعم — نص درس «قواعد التحقق ورسائل الخطأ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «قواعد التحقق ورسائل الخطأ»؟

طبّق قواعد التحقق المضمّنة (required وminLength وpattern) واعرض رسائل الخطأ. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «قواعد التحقق ورسائل الخطأ»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. البدء باستخدام React Hook Form
  2. قواعد التحقق ورسائل الخطأ
  3. التحقق من المخطط باستخدام Zod
  4. الحقول الديناميكية باستخدام useFieldArray
← العودة إلى React Academy