الصفحة الرئيسية » الترميز » 30 مقتطفات مفيدة من كود Regex لمطوري الويب

    30 مقتطفات مفيدة من كود Regex لمطوري الويب

    التعبيرات العادية هي أداة قوية يجب أن تكون في حزام أدوات كل مطور. يمكن أن يتطابقوا مع سلسلة من الأحرف استنادًا إلى معلمات معقدة للغاية ، والتي يمكن أن توفر لك الكثير من الوقت عند إنشاء مواقع ويب ديناميكية.

    يواجه مطورو الويب مهام مختلفة عن مطوري البرامج ، لكن تبقى العديد من أساسيات التعليمات البرمجية نفسها. التعبيرات العادية (أو رجإكس) هل لديك منحنى التعلم الأولي حاد, لكنها يمكن أن تكون قوية للغاية عند استخدامها بشكل صحيح.

    الجزء الأكثر صعوبة هو تعلم بناء الجملة وتعلم كيفية كتابة رمز regex الخاص بك من الصفر. لتوفير الوقت ، قمت بتنظيم 30 قصاصة مختلفة من رموز regex يمكنك دمجها في مشاريع التطوير. ونظرًا لأن regex لا يقتصر على لغة واحدة ، يمكنك تطبيق هذه المقتطفات على أي شيء منها جافا سكريبت إلى PHP أو الثعبان.

    1. قوة كلمة المرور

    ^ (؟ =. * [AZ]. * [AZ]) (؟ =. * [! @ # $ & *]) (؟ =. * [0-9]. * [0-9]) (؟ = * [من الألف إلى الياء]. * [من الألف إلى الياء]. * [من الألف إلى الياء]). 8 $

    غالبًا ما يكون التحقق من قوة كلمة المرور أمرًا شخصيًا لذلك لا توجد إجابة صحيحة مطلقة. لكنني أشعر أن مقتطف regex يعد نقطة انطلاق رائعة إذا كنت لا ترغب في كتابة مدقق قوة كلمة المرور الخاصة بك من البداية. (مصدر)

    2. اللون الست عشري

    \ # ([a-fA-F] | [0-9]) 3 ، 6

    مجال تطوير الشبكة في كل مكان مع رموز اللون السداسية. يمكن استخدام مقتطف regex هذا لسحب تطابقات كود سداسي عشرية من أي سلسلة لأي غرض. (مصدر)

    3. التحقق من صحة عنوان البريد الإلكتروني

    /[A-Z0-9._٪+-]+@[A-Z0-9-]+.+.[A-Z]2،4/igm

    تتمثل إحدى المهام الأكثر شيوعًا للمطور في التحقق من تنسيق السلسلة بنمط عنوان البريد الإلكتروني. هناك العديد من المتغيرات المختلفة لإنجاز هذه المهمة ، لذلك يقدم ارتباط SitePoint قصتي كود متميزتين لفحص بناء جملة البريد الإلكتروني مقابل سلسلة. (مصدر)

    4. عنوان IPv4

    /\b(؟:(؟:25[0-5]|2[0-4][0-9]|[01]؟[0-9][0-9]؟)\.)3 (؟:؟ 25 [0-5] | 2 [0-4] [0-9] | [01] [0-9] [0-9]) \ ب /

    يشبه عنوان البريد الإلكتروني هو عنوان IP النموذجي المستخدم لتحديد كمبيوتر معين يصل إلى الإنترنت. يتحقق هذا التعبير العادي من سلسلة لمعرفة ما إذا كان يتبع بناء جملة عنوان IPv4. (مصدر)

    5. عنوان IPv6

    (([0-9a-FA-F] 1،4:) 7،7 [0-9a-FA-F] 1،4 | ([0-9a-FA-F] 1 (4):) 1،7: | ([0-9a-FA-F] 1،4:) 1،6: [0-9a-FA-F] 1،4 | ([0-9a-FA-F] 1،4:) 1،5 (: [0-9a-FA-F] 1،4) 1،2 | ([0-9a -fA-F] 1،4:) 1،4 (: [0-9a-FA-F] 1،4) 1،3 | ([0-9a-FA-F] 1،4:) 1،3 (: [0-9a-FA-F] 1،4) 1،4 | ([0-9a-FA-F] 1،4 :) 1،2 (: [0-9a-FA-F] 1،4) 1،5 | [0-9a-FA-F] 1،4: ((: [0 -9a-FA-F] 1،4) 1،6) |: ((: [0-9a-FA-F] 1،4) 1،7 |:) | FE80: (: [0-9a-FA-F] 0،4) 0،4٪ [0-9a-زا-Z] 1، |: :( FFFF (: 0 1،4) 0،1:) 0،1 ((25 [0-5] | (2 [0-4] | 1 0،1 [0-9]) 0،1 [0-9 ]) \) 3،3 (25 [0-5] |. (2 [0-4] | 1 0،1 [0-9]) 0،1 [0-9]) | ([0-9a-FA-F] 1،4:) 1،4: ((25 [0-5] | (2 [0-4] | 1 0،1 [0-9 ]) 0،1 [0-9]) \) 3،3 (25 [0-5] |. (2 [0-4] | 1 0،1 [0-9])  0،1 [0-9]))

    بدلاً من ذلك ، قد ترغب في التحقق من عنوان بناء جملة IPv6 الأحدث باستخدام مقتطف regex الأكثر تقدماً. الفرق بسيط ، وإن كان حيويًا أثناء التطور. (مصدر)

    6. الآلاف فاصل

    / \ د 1،3 (؟ = (\ د 3) + (؟! \ د)) / ز

    تتطلب أنظمة الترقيم التقليدية فاصلة أو فترة أو علامة أخرى كل رقم ثالث بأعداد أكبر. يعمل رمز regex هذا على أي رقم وسيطبق أي علامة تختارها على كل رقم ثالث يفصل بين الآلاف والملايين وما إلى ذلك (المصدر)

    7. Prepend HTTP إلى الارتباط التشعبي

    if (! s.match (/ ^ [a-zA-Z] +: \ / \ //)) s = 'http: //' + s؛ 

    سواء كنت تعمل في JavaScript أو Ruby أو PHP ، فإن هذا التعبير المنتظم يمكن أن يكون مفيدًا للغاية. سوف يتحقق من أي سلسلة URL لمعرفة ما إذا كان يحتوي على بادئة HTTP / HTTPS ، وإذا لم يكن كذلك ، فقم بإلحاقها مسبقًا وفقًا لذلك. (مصدر)

    8. سحب المجال من URL

    /https؟:\/\/(؟:[-\w]+\.)؟([-\w]+)\.\w+(؟:\.\w+)؟\/؟.*/i

    يحتوي كل مجال موقع على البروتوكول الأولي (HTTP أو HTTPS) وفي كثير من الأحيان نطاق فرعي بالإضافة إلى مسار الصفحة الإضافي. يمكنك استخدام هذا المقتطف لاختصار كل ذلك وإعادة اسم النطاق فقط دون زخرفة إضافية. (SourceL

    9. ترتيب الكلمات الأساسية حسب عدد الكلمات

    ^ [^ \ s] * $ يطابق تمامًا الكلمة الرئيسية المكونة من كلمة واحدة ^ [^ \ s] * \ s [^ \ s] * $ مطابقات تمامًا الكلمة الرئيسية المكونة من كلمتين ^ [^ \ s] * \ s [^ \ s] * يطابق الكلمات الرئيسية التي تحتوي على كلمتين على الأقل (2 والمزيد) ^ ([^ \ s] * \ s) 2 [^ \ s] * $ مطابق تمامًا للكلمة الرئيسية المكونة من 3 كلمات ^ ([^ \ s] * \ s ) 4 [^ \ s] * $ يطابق الكلمات الرئيسية المكونة من 5 كلمات والمزيد (longtail)

    سيستمتع مستخدمو أدوات Google Analytics وأدوات مشرفي المواقع بهذا التعبير العادي. يمكنه فرز الكلمات الرئيسية وتنظيمها استنادًا إلى عدد الكلمات المستخدمة في البحث.

    يمكن أن يكون هذا محددًا عدديًا (على سبيل المثال ، 5 كلمات فقط) أو يمكن أن يطابق نطاقًا من الكلمات (مثل كلمتين أو أكثر). يعد هذا تعبيرًا قويًا عند استخدامه لفرز بيانات التحليلات. (مصدر)

    10. العثور على سلسلة Base64 صالحة في PHP

    \؟ php [\ t] eval \ (base64_decode \ (\ '(([A-Za-z0-9 + /] 4) * * ([A-Za-z0-9 + /] 3 = | [A-ي0-9 + /] 2 ==)) 1 \ '\) \) \؟.

    إذا كنت من مستخدمي PHP ، فقد تحتاج في مرحلة ما إلى تحليل التعليمات البرمجية التي تبحث عن كائنات ثنائية مشفرة Base64. يمكن تطبيق هذا المقتطف على جميع رموز PHP وسيتم التحقق من أي سلاسل Base64 موجودة. (مصدر)

    11. رقم الهاتف صحيح

    ^ \ +؟ \ d 1،3؟ [-.]؟ \ (؟ (؟: \ d 2،3) \)؟ [-.]؟ \ d \ d \ d [-.]؟ \ د \ د \ د \ د $

    باختصار، الحلو، وإلى هذه النقطة. سيقوم رمز regex هذا بالتحقق من صحة أي صيغة أرقام هواتف تقليدية تعتمد بشكل أساسي على النمط الأمريكي لأرقام الهواتف.

    نظرًا لأن هذا يمكن أن يتحول إلى موضوع معقد إلى حد ما أوصي بتخطي مؤشر ترابط Stack للحصول على إجابات أكثر تفصيلاً. (مصدر)

    12. الرائدة & زائدة مساحة بيضاء

    ^ [\ s] + | [\ s] + $

    استخدم مقتطف الشفرة هذا لسحب مسافة بادئة / زائدة من السلسلة. قد لا يكون هذا أمرًا كبيرًا ، لكن في بعض الأحيان يمكن أن يؤثر على الإخراج عند سحبه من قاعدة بيانات أو تطبيقه على تشفير مستند آخر. (مصدر)

    13. سحب مصدر الصورة)

    \< *[img][^\>] * [src] * = * [\ "\ '] 0،1 ([^ \" \' \>] *)

    إذا احتجت لسبب ما إلى سحب مصدر الصورة مباشرةً من HTML ، فإن مقتطف الشفرة هذا هو الحل الأمثل. على الرغم من أنه يمكن تشغيله بسلاسة على الواجهة الخلفية ، إلا أنه يجب أن تعتمد devs JS frontend بدلاً من ذلك على طريقة jQuery's .attr () للواجهة الأمامية. (مصدر)

    14. التحقق من صحة التاريخ في تنسيق DD / MM / YYYY

    ^ (:(؟: 31 (\ / | - |؟.؟ \) (؟: 0 [13578] | 1 [02])) | (؟ :(؟: 29 | 30) \ 1 (\ / | - | \) (؟: 0 [1،3-9] |.؟ 1 [0-2]) \ 2)) (:(؟: 1 [6-9] | [2-9] \ د)؟ \ د 2) $ | ^ (؟: 29 (\ / | - |. \)؟؟ 0 2 \ 3 (:( :(؟: 1 [6-9] | [2-9] \ د ) (؟: 0 [48] | [2468] [048] | [13579] [26]) | (:(؟: 16 | [2468] [048] | [3579] [26]) 00)) )) $ | ^ (؟: 0 [1-9] | 1 \ د | 2 [0-8]) (\ / | - |؟.؟ \) (:( ؟: 0 [1-9]) | (؟: 1 [0-2])؟؟) \ 4 (:(؟: 1 [6-9] | [2-9] \ د) \ د 2) $

    التواريخ صعبة لأنها يمكن أن تظهر كأرقام نصية أو كأرقام بتنسيقات مختلفة. PHP لديه وظيفة تاريخ رائعة ولكن هذا ليس دائمًا الخيار الأفضل عند سحب سلسلة أولية. فكر بدلاً من ذلك في استخدام هذا التعبير المنتظم المصنوع في بناء الجملة التاريخ المحدد. (مصدر)

    15. يوتيوب فيديو معرف المباراة

    /http:\/\/(؟:youtu\.be\/|(؟:[az]2،3\.)؟youtube\.com\/watch(؟:\؟|#\!)v =) ([\ ث -]. 11) * / غي

    يحتفظ YouTube بنفس بنية عنوان URL لسنوات لأنه يعمل فقط. إنه أيضًا موقع مشاركة الفيديو الأكثر شعبية على الويب ، لذلك تميل مقاطع فيديو YouTube إلى زيادة عدد الزيارات.

    إذا كنت بحاجة إلى سحب معرف فيديو YouTube من عنوان URL ، فسيكون رمز regex هذا مثاليًا ويجب أن يعمل بشكل مثالي مع جميع أشكال هياكل URL في YouTube. (مصدر)

    16. ردمك صالح

    / \ b (؟: ISBN (؟ ::؟ |))؟ ((؟: 97 [89])؟ \ d 9 [\ dx]) \ b / i

    تتبع الكتب المطبوعة نظام الترقيم المعروف باسم ISBN. قد يكون هذا أمرًا صعبًا عند التفكير في الاختلافات بين ISBN-10 و ISBN-13.

    ومع ذلك ، يتيح لك هذا المقتطف المذهل التحقق من صحة رقم ISBN والتحقق مما إذا كان رقم ISBN10 أو 13. تتم كتابة جميع الأكواد بلغة PHP ، لذا ينبغي أن يكون هذا مفيدًا لمطوري الويب. (مصدر)

    17. تحقق من الرمز البريدي

    ^ \ د 5 (؟: [- \ ق] \ د 4)؟ $

    لم يخلق مبتكر هذه المقتطف أعماله مجانًا فحسب ، بل استغرق أيضًا وقتًا لشرحها. ستجد هذا المقتطف مفيدًا سواء أكنت تتطابق مع الرمز البريدي النموذجي المكون من 5 أرقام أو الإصدار الأطول المكون من 9 أرقام.

    ضع في اعتبارك أن هذا يعني في المقام الأول للنظام الأمريكي للرموز البريدية لذلك قد يتطلب الأمر إجراء تعديلات على البلدان الأخرى. (مصدر)

    18. اسم مستخدم Twitter صالح

    / @ ([A-ي0-9 _] 1،15) /

    إليك مقتطف شفرة صغير جدًا للمطابقة مع أسماء مستخدمي Twitter الموجودة في سلسلة. انه يتحقق ل @أشير بناء جملة مثالي للمسح التلقائي لمحتويات التغريدات (أو التغريدات). (مصدر)

    19. أرقام بطاقات الائتمان

    ^ (؟: 4 [0-9] 12 ([0-9] 3) | 5 [1-5] [0-9] 14 | 6 (؟:؟ 011 | 5 [ 0-9] [0-9]) [0-9] 12 | 3 [47] [0-9] 13 | 3 (: 0 [0-5] | [68] [0-9 ]) [0-9] 11 | (؟: 2131 | 1800 | 35 \ د 3) \ د 11) $

    التحقق من صحة رقم بطاقة الائتمان غالبًا ما يتطلب نظامًا آمنًا مستضافًا في مكان آخر عبر الإنترنت. ولكن يمكن استخدام regex للحد الأدنى من متطلبات رقم بطاقة الائتمان النموذجي.

    يمكن العثور هنا على قائمة أكثر شمولاً للرموز الخاصة بالبطاقات الفردية. يتضمن ذلك Visa و MasterCard و Discover و غيرها الكثير. (مصدر)

    20. البحث عن سمات CSS

    ^ \ S * [A-زا-Z \ -] + \ S * [:] 1 \ ق [أ-ي0-9 \ ق #] + [.] 1

    قد يكون من النادر تشغيل regex عبر CSS ، لكن هذا ليس موقفًا غريبًا للغاية.

    يمكن استخدام مقتطف الشفرة هذا لسحب كل خاصية CSS مطابقة وقيمة من محددات فردية. يمكن استخدامه لأي عدد من الأسباب ، ربما لعرض أجزاء من CSS أو لإزالة الخصائص المكررة. (مصدر)

    21. الشريط تعليقات HTML

    إذا كنت بحاجة لأي سبب من الأسباب لإزالة جميع التعليقات من مجموعة من HTML ، فهذا هو رمز regex الذي يجب استخدامه. جنبا إلى جنب مع التعبير ستجد مثال PHP باستخدام preg_replace. (مصدر)

    22. الفيسبوك الملف الشخصي URL

    /(؟:http:\/\/)؟(؟:www\.)؟facebook\.com\/(؟:(؟:\w)*#!\/)؟(؟:pages\/)؟ (؟: [\ ث \ -] * \ /) * ([\ ث \ -] *) /

    يتمتع موقع Facebook بشعبية كبيرة وقد مر بالعديد من مخططات عناوين URL المختلفة. في المواقف التي تأخذ فيها عناوين URL لملف التعريف من المستخدمين ، قد يكون من المفيد تحليل السلاسل والتأكيد على هيكلتها بشكل صحيح. يمكن لهذا المقتطف القيام بذلك تمامًا وهو مثالي لجميع الارتباطات ذات النمط FB. (مصدر)

    23. تحقق من إصدار Internet Explorer

    ^. * MSIE [5-8] (؟: \. [0-9] +)؟ (؟!. * ترايدنت \ / [5-9] \. 0). * $

    لم يكن انتقال Microsoft إلى Edge بالإجماع ولا يزال الكثير من الناس يعتمدون على Internet Explorer الكلاسيكي. غالبًا ما يحتاج المطورون إلى التحقق من إصدارات IE لمعالجة التناقضات مع محركات التقديم.

    يمكن استخدام هذا المقتطف في JavaScript لاختبار عامل مستعرض استنادًا إلى إصدار Internet Explorer (5-11) الذي يتم استخدامه. (مصدر)

    24. استخراج السعر

    /(\$[0-9،]+(\.[0-9]2)؟)/

    يأتي التسعير بمجموعة متنوعة من التنسيقات التي تحتوي على الكسور العشرية والفواصل ورموز العملة. يمكن لهذا التعبير المنتظم التحقق من كل هذه التنسيقات المختلفة لسحب سعر من أي سلسلة. (مصدر)

    25. تحليل رأس البريد الإلكتروني

    /\b[A-Z0-9._٪+-]+@(؟:[A-Z0-9-]+\.)+[A-Z]2،6\b/i

    باستخدام سطر الشفرة الفردي هذا ، يمكنك تحليل عنوان البريد الإلكتروني للسحب “إلى” معلومات من الرأس. يمكن استخدامه جنبا إلى جنب مع العديد من رسائل البريد الإلكتروني المرتبطة ببعضها.

    إذا كنت تفضل تجنب regex لهذه المهمة ، فيمكنك بدلاً من ذلك الاعتماد على مكتبة تحليل. (مصدر)

    26. تطابق نوع ملف خاص

    /^(.*\.(؟!(htm|html|class|js)$))؟[^.]*$/i

    عند التعامل مع تنسيقات الملفات المختلفة مثل .xml و .html و .js ، يمكن أن يساعد ذلك في التحقق من الملفات محليًا وتحميلها من قِبل المستخدمين. يقوم هذا المقتطف بسحب امتداد الملف للتحقق مما إذا كان صالحًا من سلسلة من الإضافات الصحيحة التي يمكن تغييرها حسب الحاجة. (مصدر)

    27. تطابق سلسلة URL

    /[-a-zA-Z0-9@:٪_\+.~#؟&//=]2،256\.[az]2،4\b(\/[-a-zA-Z0 -9 @:؟ _٪ \ + ~ # & // =] *) / جي

    يمكن استخدام هذا المقتطف لكل من سلاسل HTTPS و HTTP للتحقق مما إذا كان النص يطابق بناء جملة نطاق TLD التقليدي. هناك أيضًا تطبيق بسيط لهذا regex باستخدام RegExp JavaScript. (مصدر)

    28. إلحاق rel =”لا اتباع” إلى الروابط

    (] *) (href = "https؟: //) ((؟! (؟: (؟: www \.)؟ '. ينفجر (' | (؟: www \.)؟ '، $ follow_list).') ؟!.) [^ "] +)" ((* \ بريل =) [^>] *) (؟: [^>] *)>

    إذا كنت تعمل مع مجموعة من تعليمات HTML البرمجية ، فقد يكون من الشنيع تطبيق العمل اليدوي في مهام متكررة. تعتبر التعبيرات العادية مثالية لهذه المناسبة وستوفر الكثير من الوقت.

    يمكن لهذا المقتطف سحب جميع روابط الربط من كتلة HTML وإلحاق يختلط =”لا اتباع” تنسب إلى كل عنصر. كان المطور الذي كتب هذا الرمز لطيفًا بما يكفي لنشر التعبير الخام بالإضافة إلى مثال عملي في PHP.

    29. مباراة وسائل الإعلام الاستعلام

    / @ وسائل الإعلام ([^ ] +) \ ([\ ق \ S] +؟) \ ل * / ز

    تقسيم استعلامات وسائط CSS إلى معلماتها وخصائصها. يمكن أن يساعدك ذلك في تحليل CSS الخارجي بطريقة أنظف مع تركيز أكثر مباشرة على كيفية عمل الكود. (مصدر)

    30. Google Search Syntax

    /( (+ + +) ؟( ؟:'.+؟'|".+؟"| Budap^+\-] 1 [^] *)) / g

    يمكنك إنشاء رمز regex الخاص بك لمعالجة النص القابل للبحث باستخدام بناء جملة العلامات التجارية من Google. تشير علامة الجمع (+) إلى كلمات رئيسية إضافية وتشير علامة الطرح (-) إلى الكلمات التي يجب تجاهلها وإزالتها من النتائج.

    إنها قصاصة معقدة إلى حد ما ولكن استخدامها بشكل صحيح يمكن أن توفر قاعدة لبناء خوارزمية البحث الخاصة بك. (مصدر)

    يتم إحتوائه

    الطريق إلى إتقان ريكس طويل ولكنه مجزٍ إذا التزمت به. إلى جانب أدوات regex النموذجية ، فإن أفضل طريقة للدراسة هي من خلال التكرار. حاول إنشاء تطبيقات الويب التي تعتمد على مقتطفات regex هذه لمعرفة كيفية عملها في تطبيق ويب حقيقي يعمل. وإذا كان لديك مقتطفات أخرى تقترحها ، فيمكنك نشرها في منطقة التعليقات أدناه.

    اقرأ الآن:

    50 قصاصات CSS مفيدة يجب أن يمتلكها كل مصمم