في سياق الاستعلام المشار إليه في العنوان، "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 الآن على النحو المنشود، والتحقق من صحة مدخلات السنة وتوفير معلومات دقيقة نتائج. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3