التعبيرات العادية ، والمعروفة أيضًا باسم التمثيلات العادية والتمثيلات العادية. (اللغة الإنجليزية: التعبير العادي ، غالبًا ما يتم اختصاره كـ regex ، regexp أو re in code) ، مفهوم لعلوم الكمبيوتر. تستخدم التعبيرات العادية سلسلة واحدة لوصف وتطابق سلسلة من القواعد النحوية. في العديد من محرري النصوص ، عادة ما تستخدم التعبيرات العادية لاسترداد واستبدال النص الذي يتوافق مع نمط معين.
1. التعبيرات العادية في جافا سكريبت
في JavaScript ، يمكن إنشاء تعبيرات منتظمة باستخدام كائنات regexp. نحتاج إلى إنشاء كائن جديد لـ regexp () ، ويمكننا أن نمر في معلمتين: المعلمة الأولى هي نمط المطابقة ، والمعلمة الثانية هي معلمة اختيارية ، ويمكننا أن نمر في ثلاث معلمات. أنا أقصد حالة غير حساسة ، G تعني المطابقة العالمية ، أي مطابقة جميع الأوتار التي تلبي الظروف ، M يعني أداء مباريات متعددة. الأمثلة على النحو التالي:
نسخة الكود كما يلي:
var reg = new regexp ("hello" ، "i") ؛ // يعني أن سلسلة Hello في السلسلة متطابقة وهي غير حساسة للحالة.
2. استخدم EXEC لمطابقة الأنماط
هناك طريقة في regexp يمكنها أداء مطابقة الأنماط وإرجاع النتيجة: exec (). هذه الطريقة مهمة للغاية ، في الأساس وظيفة ضرورية لاستخدام JS لمطابقة الأنماط. ومع ذلك ، لا يعرف الكثير من الناس قيمة إرجاع هذه الوظيفة ، لذلك غالبًا ما تحدث الأخطاء عند استخدامها فعليًا. نحن هنا نقدم بشكل منهجي بعض طرق استخدام exec ().
التنسيق الأساسي لـ exec () هو: regexpobject.exec (سلسلة) ، حيث regexpobject هو كائن المطابقة العادي والسلسلة هي السلسلة المراد مطابقة. إذا نجحت المباراة ، يتم إرجاع صفيف ؛ إذا لم يكن هناك جزء متطابق ناجح من السلسلة ، يتم إرجاع NULL.
النقطة هنا هي هذه الصفيف. ماذا تعود الصفيف بالضبط؟ يمكنك إلقاء نظرة على التجربة التالية.
نسخة الكود كما يلي:
var re = new regexp ("[؟#&]" + user + "= ([^&#]*)" ، "i")
يطابق هذا الرمز عنوان URL ويمكن استخدامه للحصول على جزء المعلمة بعد المستخدم =. لذلك إذا كنت تستخدم عنوان URL واستخدمت هذا النمط لأداء عملية EXEC ، فما الذي سيتم إرجاعه؟ على سبيل المثال ، لدينا ما يلي
www.qq.com؟User=tom&psw=123456
نتيجة الصفيف الذي تم إرجاعه بواسطة EXEC هو: [؟ user = Tom ، Tom]. يمكنك أن ترى أن العنصر الأول من صفيف الإرجاع هو السلسلة التي تتطابق مع نمط المطابقة بأكمله ، وأن الحرف المطابق الثاني هو قيمة المعلمة.
هذه هي القاعدة التي يتم إرجاعها بواسطة EXEC Matching: العنصر الأول هو السلسلة المطابقة بأكملها ، وتبدأ من المعلمة الثانية لإرجاع السلسلة المطابقة بواسطة التجميع المحدد بواسطة كل () في النمط.
ما ([^& #]*) إرجاع هو سلسلة لا تبدأ بـ & أو #، أي المعلمات المقابلة المتبعة.
إذا قمنا بتعديل النمط المحدد إلى [؟#&] " + (user) +" = ([^&#]*) ، فإن الصفيف الذي تم إرجاعه بعد exec () هو [؟ user = tom ، user ، tom].
ما سبق هو ما قدمه لك المحرر باستخدام طريقة exec () في JS لإنشاء التحقق العادي التعبير. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!