1. طرق لتحديد التعبيرات العادية
هناك طريقتان لتحديد التعبيرات العادية: تعريف المنشئ وتعبير الكمية المباشرة التعبير المنتظم. على سبيل المثال:
انسخ الكود على النحو التالي: var reg1 = new regexp ('/d {5 ، 11}') ؛
var reg2 = // d {5 ، 12}/؛
تعبيرات منتظمة تقيس الأحرف مباشرة
/س: أحرف NUL (/u0000)
/T: حرف TAB (/u0009)
/N: حرف NewLine (/u000a)
/v: حرف علامة التبويب العمودية (/u000b)
/F: تغيير الصفحة (/u000c)
/R: حرف عودة النقل (/u000d)
/XNN: الحرف اللاتيني المحدد بواسطة الرقم السداسي عشري nn ، على سبيل المثال ، /x0a يعادل /n
/uxxxx: أحرف Unicode التي حددها الرقم السداسي عشر xxxx ، على سبيل المثال /u0009 تعادل /t
/cx: حرف التحكم ^x ، على سبيل المثال ، /cj يعادل كسر الخط /n
أحرف مرساة التعبير العادية
^: تطابق بداية السلسلة ، في البحث متعدد الخطوط ، تطابق بداية السطر
$: تطابق نهاية سلسلة ، في البحث متعدد الخطوط ، تطابق نهاية الخط
/ب: تطابق حدود كلمة ما.
/ب: تطابق موقف الحدود غير الكلمة
/
(؟! P): يؤكد الاتجاه السلبي على عرض الصفر أولاً ، مما يتطلب أن تكون السلسلة التالية لا تتطابق مع p
فصول الأحرف للتعبيرات العادية
[...]: أي حرف بين قوسين مربعة
[^...]: أي حرف ليس بين قوسين مربعة
.: أي حرف باستثناء فترات الأسطر وغيرها
/W: أي كلمة تتألف من أحرف ASCII ، أي ما يعادل [A-ZA-Z0-9]
/W: أي كلمة لا تتكون من أحرف ASCII تعادل [^A-ZA-Z0-9]
/S: أي مساحة بيضاء يونيكود
/s: أي شخصيات بيضاء غير متوفرة ، لاحظ أن /w و /s مختلفة
/D: أي رقم ASCII ، أي ما يعادل [0-9]
/D: أي حرف باستثناء رقم ASCII ، أي ما يعادل [^0-9]
[/B]: الكمية المباشرة للمسافة الخلفية (حالة خاصة)
كرر بناء جملة الأحرف للتعبيرات العادية
{n ، m}: تطابق العنصر السابق على الأقل n مرات ، ولكن ليس أكثر من Mimes
{n ،}: تطابق العنصر السابق n مرات أو أكثر
{n}: تطابق العنصر السابق n مرات
؟: تطابق العنصر السابق 0 أو 1 مرة ، أي العنصر السابق اختياري ، يعادل {0 ، 1}
+: تطابق العنصر السابق 1 أو أكثر ، أي ما يعادل {1 ،}
*: تطابق العنصر السابق 0 أو أكثر ، أي ما يعادل {0 ،}
اختيار الأحرف والتجميع والمرجع من التعبيرات العادية
|: حدد ، مطابقة التعبير الفرعي على اليسار أو التعبير الفرعي على اليمين
(...): الجمع بين العديد من العناصر في وحدة ، والتي يمكن تعديلها بواسطة رموز مثل "*" ، "+" ، "؟ يستخدم
(؟: ...): دمج العناصر فقط في وحدة ، ولكن لا تتذكر الشخصيات التي تطابق المخلل
/N: تطابق الشخصية التي تتطابق مع المجموعة الأولى. تجميع النماذج غير مشفر
معدل تعبير منتظم
أنا: تنفيذ مطابقة غير حساسة للحالة
G: قم بإجراء مباراة عالمية ، باختصار ، ابحث عن جميع المباريات ، بدلاً من التوقف بعد العثور على المباراة الأولى
M: نمط مطابقة متعدد الخطوط ، ^ يطابق بداية الخط وبداية السلسلة ، ويطابق $ نهاية الخط ونهاية السلسلة
طريقة السلسلة لمطابقة الأنماط
Search (): حجةها تعبير منتظم ، وإرجاع موضع البداية من الفرعية الأولى لمطابقته ، وإرجاع -1 إذا لم يكن هناك فرعية مطابقة. إذا لم تكن معلمة Search () تعبيرًا منتظمًا ، فسيتم تحويلها أولاً إلى تعبير منتظم من خلال مُنشئ regexp ، لا يدعم Search () البحث العالمي لأنه يتجاهل المعدل G. يحب:
نسخة الكود كما يلي:
var s = "JavaScript" .Search (/script/i) ؛
استبدال (): يتم استخدامه لأداء الاسترجاع والاستبدال. تلقي معلمتين ، الأول هو التعبير العادي ، والثاني هو السلسلة التي سيتم استبدالها. إذا تم تعيين التعبير العادي ، فسيتم إجراء بديل عالمي ، وإلا يتم استبدال الفرقة الأولى فقط للمطابقة. إذا كانت الوسيطة الأولى ليست تعبيرًا منتظمًا ، فابحث عن السلسلة مباشرة بدلاً من تحويلها إلى تعبير منتظم. يحب:
انسخ الكود على النحو التالي: var s = "javaScript" .replace (/java/gi ، "script") ؛
Match (): حجةها تعبير منتظم. إذا تم تعيين Modifier G ، يتم تنفيذ المطابقة العالمية. يحب:
انسخ الكود على النحو التالي: var d = '55 ff 33 hh 77 tt'.match (// d+/g) ؛
Split (): يتم استخدام هذه الطريقة لتقسيم السلسلة التي تسميها إلى صفيف مكون من فرعية. يحب:
انسخ الكود على النحو التالي: var d = '123،31،453،645'.split (' ، ') ؛
var d = '21 ، 123 ، 44 ، 64 ، 67 ، 3'.split (// s*،/s*/) ؛ ، "67" ، "3"]
2. كائن regexp
كل كائن regexp لديه 5 خصائص. مصدر الخاصية هو سلسلة للقراءة فقط تحتوي على نص للتعبير العادي. Property Global هي قيمة منطقية للقراءة فقط للإشارة إلى ما إذا كان التعبير العادي يحتوي على تعديل G. خاصية الجينوريكاس هي قيمة منطقية للقراءة فقط للإشارة إلى ما إذا كان التعبير العادي يحتوي على تعديل i. الخاصية Multiline هي قيمة منطقية للقراءة فقط للإشارة إلى ما إذا كان التعبير العادي يحتوي على تعديل م. Property LastIndex هو عدد صحيح قابل للقراءة وقابل للكتابة.
هناك طريقتان لكائن regexp. المعلمة exec () هي سلسلة ، وتشبه وظيفتها مطابقة (). إذا لم يتم العثور على تطابق ، فالأمرات الفارغة. بغض النظر عما إذا كان التعبير العادي يحتوي على تعديل G ، سيعود نفس الصفيف. عندما يكون لكائن التعبير المعتاد استدعاء exec () معدل G ، فإنه يعين خاصية LastIndex لكائن التعبير العادي الحالي إلى موضع الحرف بجوار التسوق المطابق. عندما يستدعي التعبير العادي نفسه Exec () في المرة الثانية ، سيبدأ في الاسترداد من السلسلة المشار إليها بواسطة خاصية LastIndex ، وإذا لم يجد Exec () أي نتائج مطابقة ، فإنه يعيد تعيينه إلى 0. يحب:
نسخة الكود كما يلي: var p = /java /g ؛
var text = "JavaScript أكثر متعة من Java!"
var r ؛
بينما ((r = p.exec (نص))! = null) {
console.log (r ، 'lastIndex:' + P.LastIndex) ؛
}
طريقة أخرى هي اختبار (). يحب:
نسخة الكود كما يلي: var p = /java /i ؛
P.Test ('JavaScript') ؛