# التحقق من صحة الإدخال

## ☑️ ما هو التحقق من الإدخال؟

بجانب التحقق مما إذا تم إدخال قيمة في حقل، يمكنك أيضًا إعداد قواعد متقدمة باستخدام التعابير النمطية للتأكد من أن النص الذي أدخله المستجيب يطابق شروطًا معينة.

يمكنك أيضًا تعيين **الحد الأقصى لطول الأحرف** المسموح بإدخالها في الحقل الخاص بك.

![](/files/7bfd4897dede53092ffe8c00ec0e7ef1dd89aff5)

{% hint style="info" %}
يمكن للمستخدمين المتقدمين أيضًا إنشاء حقل مخصص قائم [نوع الإجابة](/ar/form-management/form-designer/answers/answer-types/creating-new-type.md) باستخدام  [التحقق المخصص بجافاسكربت](/ar/form-management/form-designer/answers/answer-types/creating-new-type/custom-validation-code.md) للتحقق من إدخالات المستجيب.
{% endhint %}

## 🔢 التعابير النمطية

مُ [التعبير النمطي](https://en.wikipedia.org/wiki/Regular_expression) (regex) هو نمط بحث نصي سيُتحقق مما إذا كان النص الذي أدخله المستجيب يطابق نمط التعبير أم لا.&#x20;

![](/files/d4e4bc9d82d0967671ca2dae605de149418317c9)

باستخدام هذه الأنماط يمكنك التحقق من قيمة باستخدام أنماط مثل البريد الإلكتروني، الأرقام، رموز البريد وغيرها... تقريبًا أي [حقل](/ar/form-management/form-designer/answers/answer-types/entry-field.md) قائم النوع يمكن التحقق من صحته مقابل تعبير نمطي يتم إنشاؤه باستخدام محرر التعابير النمطية.

## ➕ إضافة تعابير نمطية

لإضافة تعبير نمطي انتقل إلى [خصائص الإجابة](/ar/form-management/form-designer/answers/answer-properties.md) الصفحة واضغط على **+** الأيقونة

![](/files/c88fbc34656cb0bbd76e8d4235c99f609215c31b)

{% hint style="info" %}
التعابير النمطية متاحة فقط للمستخدم الذي أنشأها. إذا رغبت في مشاركة التعبير النمطي مع جميع مستخدمي ngSurvey الآخرين يمكنك تفعيل خاصيته **مضمنة** .
{% endhint %}

## 🔅 خصائص التعبير النمطي

* **`الاسم`** هو الاسم الظاهر للتعبير النمطي.
* **`التعبير النمطي`** هو نمط التعبير النمطي الفعلي الذي سيُستخدم لمطابقة إجابة المستجيب.
* **`رسالة الخطأ`** رسالة الخطأ التي ستظهر للمستجيب إذا لم تطابق إدخاله النمط.
* **`مضمن`** تسمح لنا بمشاركة التعبير النمطي مع جميع المستخدمين الآخرين.

{% hint style="info" %}
قد تجد تعابير نمطية جاهزة وتختبر تعابيرك في  <https://regex101.com/>
{% endhint %}

## 🔢 جافاسكربت

لإجابات القائم على الحقل يمكنك تعيين تحقق جافاسكربت وخصيصة رسالة التحقق على [خصائص الإجابة](/ar/form-management/form-designer/answers/answer-properties/field-properties.md) لاستخدام كود جافاسكربت مخصص للتحقق من إجابتك.\
\
في الكود أدناه سيتم استبدال respondentAnswerValue بالقيمة الفعلية للحقل. إذا عاد الكود بقيمة false سيمنع ngSurvey الإرسال أو التنقل ويعرض رسالة التحقق.

```
return (respondentAnswerValue >= 18 && respondentAnswerValue <= 99);
```

في الكود أدناه نستخدم getAnswer في سياق التحقق للحصول على قيمة من إجابة أخرى في الاستبيان. هنا نبحث عن إجابة لها reporting alias مضبوط إلى "hh\_people".&#x20;

<pre><code><a data-footnote-ref href="#user-content-fn-1">re</a>turn (respondentAnswerValue &#x3C;= validationContext.getAnswer('hh_people'));
</code></pre>

سياق التحقق يدعم الأساليب والخصائص التالية

```typescript
export class ValidationContext {
   answer:Answer, // الإجابة الحالية التي يتم التحقق منها
   question:Question, // السؤال الحالي للإجابة التي يتم التحقق منها
   questions:Question[], // جميع أسئلة الاستبيان
   answers: Answer[];  // جميع إجابات الاستبيان

  public getAnswer(id: string): string // الحصول على قيمة إجابة بالبحث عن reporting alias أو المعرف الخاص بها
  public isSelectedAnswer(id: string, value: string): boolean // البحث عن سؤال بناءً على id أو reporting alias والتحقق ما إذا كانت القيمة المعطاة مختارة 
}

```

[^1]:


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ngsurvey.com/ar/form-management/form-designer/answers/answer-properties/entry-validation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
