أخي ، لقد تعلمت مؤخرًا JavaScript ورأيت أن نقاط المعرفة كانت فوضوية بعض الشيء عندما كنت أتعلم تعبيرًا منتظمًا ، لذلك كتبت مدونة لتلخيصها.
تعريف
هناك طريقتان لتحديد reg exp في JavaScript:
1) استخدام EXP جديد: var exp1 = new exp ("ABC") ؛
2) ضع النمط مباشرة بين اثنين //: var exp2 = /abc /؛ //ملحوظة. . لا توجد علامات اقتباس مزدوجة ، إذا قمت بإضافتها ، تصبح سلسلة
شخصيات خاصة
بصريًا ، فإن الشخصيات الخاصة هي نفس شخصيات Perl. . فقط استخدمه مباشرة
/D أحرف الرقم
/W الأحرف الأبجدية الرقمية ("أحرف الكلمات")
/S WhiteSpace أحرف (المساحة ، علامة التبويب ، خط جديد ، وتماثل)
/D أحرف ليست أرقام
/ث الشخصيات غير الرقمية
/s شخصيات غير وايتي
. فترة تطابق جميع الشخصيات باستثناء الخطوط الجديدة
هناك طريقة بسيطة للغاية لتذكر:
D = الرقم لذلك هو رقم
w = كلمة لذلك هي رسائل
s = الفضاء بحيث يكون مساحة
جميع الأدوية العكسية. .
قوسين []
وضع النمط بين الأقواس يعني أنه طالما أن أي حرف متطابق ، فهذا صحيح. (إنه نفس Java أو Perl)
على سبيل المثال
نسخة الكود كما يلي:
console.log (/[01]/. test ("023424")) ؛ // حقيقي
console.log (/[01]/. test ("13424")) ؛ // حقيقي
console.log (/[01]/. test ("23424")) ؛ // خطأ شنيع
قوسين ()
وهذا يعني أن كل شيء بين قوسين يجب أن يكون صحيحًا
على سبيل المثال
نسخة الكود كما يلي:
console.log (/[01]/. test ("013424")) ؛ // حقيقي
console.log (/[01]/. test ("13424")) ؛ // خطأ شنيع
console.log (/[01]/. test ("230424")) ؛ // خطأ شنيع
console.log (/[01]/. test ("230142401")) ؛ // حقيقي
الكميات
إنه نفس جافا. . هذا الجدول جيد جدا. . لطالما أحببت استخدامه
| طماع | متكاسل | التملك | معنى |
|---|---|---|---|
| x؟ | x ؟؟ | x؟+ | x ، مرة واحدة أو لا على الإطلاق |
| x* | x*؟ | x*+ | x ، صفر أو أكثر |
| x+ | x+؟ | x ++ | x ، مرة أو أكثر |
| x {n} | x {n}؟ | x {n}+ | س ، بالضبط ن مرات |
| x {n ،} | x {n ،}؟ | x {n ،}+ | x ، على الأقل ن مرات |
| x {n ، m} | x {n ، m}؟ | x {n ، m}+ | X ، على الأقل N ولكن ليس أكثر من M Times |
وظائف كائن التعبير
1) الاختبار بسيط للغاية. ما عليك سوى وضع السلسلة للاختبار في الاختبار (...) ، وستسترجع هذه الوظيفة True/False ، والتي تمثل مطابقة/unfatch
2) exec ، هذه الوظيفة تُرجع فارغة إذا لم يتم العثور على سلسلة مطابقة. إذا تم العثور عليه ، سيتم إرجاع صفيف. هذا يحتوي على سلاسل من المباريات بالترتيب.
3) string.replace (expression1 ، string1) تحل هذه الوظيفة محل جزء المطابقة في التعبير مع String1. في String1 ، يمكنك استخدام مجموعة الأقواس في التعبير السابق
، لاستبدال جزء منه. على سبيل المثال ، "co-ol" .replace (/[/w] +/- [/w]+/، "$ 2- $ 1") ؛ // يمكن استخدام "ol-co" حتى 9 دولارات
4) string.replace (التعبير ، الوظيفة) هذا نسخة محسّنة وقوية للغاية. يمكنك تحديد أي إخراج تريده من خلال الوظيفة. الاستخدام المحدد غير مدرج هنا ، يرجى الرجوع إلى
انقر لفتح الرابط
توليد ديناميكي تعبير ريج
يمكن تطبيق هذه الطريقة عندما تريد استخدام شيء ما في Reg Exp فقط عن وقت التشغيل
لإنشاء reg exp ، تحتاج فقط إلى استخدام String لإنشاء مظهر exp reg ، ثم استخدام مُنشئ EXP. (المذكورة في بداية المقالة)
على سبيل المثال:
نسخة الكود كما يلي:
var name = "عزيزي"
"أوه ، عزيزي" .replace (new exp (name) ، "God") ؛ // يا إلهي
ومع ذلك ، إذا كانت هناك أحرف خاصة في الاسم ، فقد يتم استخدامها في التعبير العادي ، وغالبًا ما ترتكب الطريقة أعلاه خطأً.
لذلك ، في هذه الحالة ، يمكننا بادئة كل حرف لسلسلة الإدخال مع رضاب عكسي مثل:
نسخة الكود كما يلي:
var name = df [] vxv ؛
var expname = name.replace ("/[^/w/s]/g" ، "// $ &") ؛
"اسمي df [] vxv" .replace (new exp (name) ، "bob") ؛ // اسمي بوب