إجراء مطابقات Regex غير حساسة لحالة الأحرف في JavaScript
عند العمل مع عناوين URL، غالبًا ما يكون من الضروري استخراج البيانات من سلسلة الاستعلام. في جافا سكريبت، يمكن أن يكون استخدام التعبيرات العادية لإجراء هذا الاستخراج أمرًا مباشرًا، ولكن ضمان عدم حساسية حالة الأحرف قد يكون أمرًا صعبًا.
في هذا المنشور، نستكشف مشكلة شائعة حيث يمكن أن تؤدي المقارنة الحساسة لحالة الأحرف إلى نتائج غير متسقة. لنأخذ بعين الاعتبار مقتطف الكود التالي:
var results = new RegExp('[\\?&]' name '=([^&#]*)').exec(window.location.href); if (!results) { return 0; } return results[1] || 0;
يهدف هذا الرمز إلى استخراج قيمة معلمة سلسلة استعلام تسمى "الاسم" من عنوان URL الحالي. ومع ذلك، فإنه لا يقوم بإجراء مقارنة غير حساسة لحالة الأحرف لاسم سلسلة الاستعلام، مما قد يؤدي إلى سلوك غير متوقع إذا تم إدخال الاسم بأحرف مختلفة.
لحل هذه المشكلة، يمكننا استخدام "i" معدّل في تعبيرنا العادي لجعل المقارنة غير حساسة لحالة الأحرف. يجب إضافة هذا المعدل مباشرة بعد آخر شرطة مائلة للأمام في التعبير العادي، كما هو موضح أدناه:
var results = new RegExp('[\\?&]' name '=([^&#]*)', 'i').exec(window.location.href);
من خلال تضمين المعدل 'i'، سيتجاهل التعبير العادي الآن حالة اسم سلسلة الاستعلام، مما يضمن أن ستكون المقارنة ناجحة بغض النظر عن غلاف الإدخال.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3