"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يفشل JavaScript RegEx في التحقق من صحة المدخلات؟

لماذا يفشل JavaScript RegEx في التحقق من صحة المدخلات؟

تم النشر بتاريخ 2024-11-03
تصفح:585

Why is JavaScript RegEx Failing to Validate Inputs?

يواجه صعوبة في وظيفة RegEx في Javascript: دراسة حالة من "Regex لا يعمل"

في سياق الاستعلام المشار إليه في العنوان، "Javascript RegEx لا يعمل" "، واجه المستخدم مشكلة حيث يقوم التعبير العادي (regEx) بإرجاع خطأ باستمرار، بغض النظر عن قيمة الإدخال. مقتطف الكود المقدم في الاستفسار هو كما يلي:

function checkLegalYear() {
    var val = "02/2010"; 

    if (val != '') {
        var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");

        if (regEx.test(val)) {
            //do something
        }
        else {
            //do something
        }
    }
}

حاول المستخدم التحقق من صحة مدخلات السنة باستخدام RegEx وواجه نتائج غير متوقعة. على الرغم من اختبار هذا الرمز في العديد من المحررين عبر الإنترنت، استمر RegEx في إرجاع خطأ.

معالجة المشكلة:

يكمن جذر المشكلة في الطريقة المستخدمة لإنشاء كائن RegEx. عند تعريف RegEx من سلسلة، يجب مضاعفة أحرف الخط المائل العكسي لمنع التفسير غير الصحيح أثناء عملية التحليل. لتصحيح ذلك، يجب استخدام الكود التالي:

var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");
بدلاً من ذلك، يوصى باستخدام صيغة RegEx مباشرة، مما يلغي الحاجة إلى مضاعفة الخطوط المائلة العكسية:

var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;
من خلال تنفيذ هذه التعديلات، يجب أن يعمل RegEx الآن على النحو المنشود، والتحقق من صحة مدخلات السنة وتوفير معلومات دقيقة نتائج.

بيان الافراج أعيد طبع هذه المقالة على: 1729229298 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3