حاسبة الوقت

تتيح لك حاسبة الوقت الخاصة بنا إجراء حساب الوقت بكل دقة وسلاسة. سواء كنت تبحث عن طريقة لـ حساب ساعات العمل أو حساب عدد الساعات والدقائق لمشروعك، فإن برنامج حساب الوقت لدينا يوفر لك النتائج الفورية. استخدم خيار احسب ساعات العمل لتنظيم جدولك الزمني بكفاءة عالية، واستفادة قصوى من حساب الساعات اليومية.

star 4.9
auto_awesome AI
New

حاسبة الوقت calculator

/ /
global | case-insensitive | multiline | dotAll | unicode
info Enter a pattern to start matching
0 matches
find_replace Replace Mode

                        

No matches yet

lightbulb Tips

  • •\d = digit, \w = word, \s = space
  • •Use 'g' flag to find all matches
  • •Escape special chars: \. \( \[ \+
  • •Use (?:...) for non-capturing groups

How to Use the حاسبة الوقت

edit

أدخل وقت البداية

اكتب وقت البداية في حقل الإدخال لاستار عملية حساب الوقت وحساب ساعات العمل بدقة.

text_fields

أضف وقت النهاية

الصق أو اكتب النص الذي تريد اختبار مطبقاً عليه. يتم تمييز النتائج المطابقة فوراً.

tune

تبديل العلامات

قم بتفعيل العلامات مثل البحث الشامل (g)، أو تجاهل حالة الأحرف (i)، أو الأسطر المتعددة (m) لتعديل سلوك المطابقة.

visibility

عرض النتائج

اطّلع على كافة التطابقات، ومجموعات الالتقاط، ومواضع المطابقة. استخدم وضع الاستبدال لاختبار البحث والاستبدال.

The Formula

التعبيرات النمطية هي أنماط تُستخدم لمطابقة مجموعات الحروف في النصوص. يقوم محرك التعبيرات النمطية بمسح نص الاختبار من اليسار إلى اليمين، محاولاً مطابقة النمط في كل موضع. تعمل العلامات على تعديل سلوك المطابقة - حيث تجد 'g' كافة التطابقات، وتتجاهل 'i' حالة الأحرف، وتجعل 'm' الرموز ^ و$ تطابق حدود الأسطر.

new RegExp(pattern, flags).exec(testString)

lightbulb Variables Explained

  • pattern نمط التعبير النمطي المراد مطابقته
  • flags علامات التعبير النمطي: g (شامل)، i (تجاهل حالة الأحرف)، m (أسطر متعددة)، s (تضمين النقاط)، u (يونيكود)
  • testString النص المدخل لاختبار النمط ضده
  • exec() يعيد تفاصيل التطابق بما في ذلك المجموعات الملتقطة والمؤشرات

tips_and_updates Pro Tips

1

استخدم خيار حساب الوقت الشامل لمتابعة كل دقيقة بدقة متناهية

2

احسب ساعات العمل بدقة باستخدام أداة حساب الساعات المتقدمة: \. \( \) \[ \] \{ \} \+ \* \?

3

نظم وقتك واستخدم برنامج حساب الوقت للمهام التي تتطلب حساب عدد الساعات بدقة

4

\d = رقم, \w = حرف, \s = مسافة, \b = حد الكلمة

5

استخدم حاسبة الوقت الذكية لـ حساب عدد الساعات والدقائق بأقصى سرعة ممكنة

6

اجعل احسب ساعات العمل جزءاً من روتينك اليومي لضمان دقة حساب الساعات

7

جرب حاسبة الوقت في مختلف السيناريوهات لضمان دقة حساب الوقت وحساب ساعات العمل

احسب ساعات العمل

برنامج حساب الوقت

اكتب نمط التعبير النمطي الخاص بك وشاهد التطابقات مميزة في الوقت الفعلي. تدعم حاسبة الوقت الخاصة بنا كافة علامات جافاسكريبت بما في ذلك:

  • حساب الوقت
  • حساب ساعات العمل
  • حساب الساعات
  • حساب عدد الساعات

يتم تمييز كل تطابق مع عرض مجموعات الالتقاط بشكل منفصل لسهولة تصحيح الأخطاء.

حساب عدد الساعات والدقائق

ابنِ أنماط تعبير نمطي معقدة باستخدام الأداة التفاعلية الخاصة بنا. تعرف بدقة على ما يطابقه نمطك ولماذا.

يتم ترقيم مجموعات الالتقاط وعرضها، مما يسهل بناء أنماط من أجل:

  • عد تنازلي
  • الحاسبة العلمية
  • حساب الوقت بالدقائق

مرجع وملخص التعبيرات النمطية

مرجع سريع لبنية التعبيرات النمطية الشائعة (regex syntax):

  • فئات الأحرف (\d, \w, \s)
  • أدوات القياس والكميات (+, *, ?, {n})
  • المراسّات والحدود (^, $, \b)
  • المجموعات والتخيير
  • التطلع للأمام والخلف (lookahead and lookbehind)

كل ما تحتاجه لإنشاء أنماط التعبيرات النمطية بجوار أداة الاختبار مباشرة.

ما هو التعبير النمطي (Regular Expression) وكيف يعمل؟

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

وفقاً لمستندات ويب MDN، فإن تعبيرات JavaScript النمطية هي كائنات يتم إنشاؤها إما باستخدام نمط حرفي (/pattern/flags) أو عبر مُنشئ RegExp. تُعرّف البنية الرسمية ودلالات المطابقة في مواصفات لغة ECMAScript التي تحافظ عليها منظمة TC39، بينما تعود النظرية الأوسع إلى اللغات المنتظمة في نظرية اللغات الشكلية.

تنفذ معظم المحركات الحديثة، بما في ذلك الموجودة في Chrome (V8) و Node.js و .NET، محركات مطابقة التراجع التي تدعم ميزات مثل المراجع الخلفية والنظرات المحيطة بما يتجاوز الآلات المحدودة البحتة.

كيفية استخدام فئات الأحرف وأدوات الكميات في التعبيرات النمطية

تعد فئات الأحرف وأدوات القياس (Character classes and quantifiers) اللبنات الأساسية لأي نمط تعبير نمطي. فئة الأحرف مثل [a-z] تطابق أي حرف فردي في المجموعة، بينما تُعرّف الفئات المختصرة مثل \d (رقم)، و \w (حرف كلمة)، و \s (مسافة بيضاء) في مواصفات ECMAScript وموثقة في مستندات ويب MDN.

تتحكم أدوات الكميات في التكرار:

  • * تعني صفر أو أكثر
  • + تعني واحد أو أكثر
  • ? تعني صفر أو واحد
  • {n,m} تطابق عدد مرات يتراوح بين n و m

امزج بينها لإنشاء أنماط دقيقة، على سبيل المثال \d{3}-\d{4} لقطعة من رقم هاتف. تطابق الفئات المنفية مثل [^0-9] أي شيء باستثناء الأحرف المدرجة، مما يمنحك تحكماً دقيقاً في النص الذي يقبله نمطك تماماً.

ما هي المراسّات والحدود والنظرات المحيطة في التعبيرات النمطية؟

تطابق المراسّات والحدود (Anchors and boundaries) المواضع بدلاً من الأحرف، مما يتيح لك تأكيد مكان حدوث المطابقة دون استهلاك النص. يثبت الرمز ^ عند بداية السلسلة (أو السطر مع علامة الأسطر المتعددة)، ويثبت $ عند النهاية، و \b تحدد حد كلمة بين حرف كلمة وحرف غير كلمة، كما هو موثق بواسطة مستندات ويب MDN ومواصفات ECMAScript.

توسع تأكيدات النظرات المحيطة هذه الفكرة: التطلع للأمام (?=...) والتطلع للأمام السلبي (?!...) يتحققان مما يتبع، بينما التطلع للخلف (?<=...) و (?

تعتبر تأكيدات العرض الصفري هذه ضرورية لقواعد كلمات المرور، والتحقق من الصحة، ومطابقة الرموز فقط في سياقات محددة.

كيفية استخدام مجموعات الالتقاط المسماة والمراجع الخلفية

تتيح لك مجموعات الالتقاط المسماة (Named capture groups) تسمية سلسلة فرعية ملتقطة لأنماط أكثر وضوحاً وقابلية للصيانة. أُضيفت إلى JavaScript في ECMAScript 2018 وموثقة في مستندات ويب MDN، وتُعيّن البنية (?\d{4}) الاسم 'year' لمجموعة، يمكن الوصول إليها عبر match.groups.year.

تعيد المراجع الخلفية (Backreferences) استخدام قيمة تم التقاطها مسبقاً لاحقاً في نفس النمط: تشير \1 إلى المجموعة المرقمة الأولى وتشير \k إلى مجموعة مسماة. على سبيل المثال، تطابق (?['\"]).*?\k سلسلة محاطة بعلامات تنصيص وتنتهي بنفس حرف علامة التنصيص الذي بدأت به.

تحسن المجموعات المسماة من القراءة مقارنة بالفهارس الموضعية، خاصة في الأنماط المعقدة لتحليل التواريخ، أو عناوين URL، أو سطور السجلات المنظمة.

كيفية اختبار وتصحيح التعبيرات النمطية للتحقق من البريد الإلكتروني وعناوين URL

تُستخدم التعبيرات النمطية على نطاق واسع للتحقق من صحة واستخراج رسائل البريد الإلكتروني وعناوين URL، على الرغم من أن الامتثال الكامل لمعيار RFC صعب خادعاً. يُعرّف تنسيق البريد الإلكتروني في RFC 5322، وقواعد عناوينه معقدة لدرجة أن أي تعبير نمطي قصير لا يلتقطه تماماً؛ توصي مستندات ويب MDN ومواصفات WHATWG HTML بنمط عملي لحقل الإدخال type=email بدلاً من محلل صارم لمعيار RFC 5322.

تتبع عناوين URL البنية العامة في RFC 3986. بالنسبة لمعظم التطبيقات، يكون النمط المتساهل الذي يلتقط الأخطاء الواضحة بالإضافة إلى التحقق الفعلي من التسليم أو الطلب أكثر قوة من التعبير الشامل.

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

هل التعبيرات النمطية آمنة؟ فهم هجمات حرمان الخدمة (ReDoS) ومخاطر الأمان

تعتبر التعبيرات النمطية آمنة للمطابقة ولكنها قد تخلق مخاطر حرمان من الخدمة إذا كتب ُالأنماط بإهمال. حرمان الخدمة بالتعبير النمطي (ReDoS)، والموثق بواسطة OWASP، يحدث عندما يصطدم محرك التراجع بتراجع كارثي على إدخال مصمم، مما يتسبب في وقت أسي وتجمد العملية. المحفز الكلاسيكي هو أدوات القياس المتداخلة أو المتداخلة على أنماط غامضة، مثل (a+)+$ مقابل سلسلة طويلة من 'a' يليه حرف غير مطابق.

توصي OWASP بما يلي:

  • تجنب أدوات القياس المتداخلة
  • استخدام المجموعات الذرية أو أدوات القياس التملكّية حيثما أمكن الدعم
  • ضبط مهلات التنفيذ
  • عدم بناء أنماط مطلقاً من إدخال مستخدم غير موثوق به دون التحقق من الصحة

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

كيف تختلف علامات التعبيرات النمطية (Flags) عبر JavaScript و Python و PCRE؟

تشترك علامات التعبيرات النمطية في المفاهيم عبر اللغات ولكنها تختلف في البنية والميزات المتاحة. في JavaScript، تُلحق العلامات بالنمط الحرفي (/pattern/gi) أو تمرر كمعلمة ثانية لمُنشئ RegExp، مع تعريف g و i و m و s و u و y في مواصفات ECMAScript وشرحها في مستندات ويب MDN.

تستخدم وحدة re في Python علامات مضمنة مثل re.IGNORECASE أو بادئات (?i) وتفتقر إلى علامة الالتصاق (sticky). تدعم PCRE والمحركات المتوافقة مع Perl التي تستخدمها PHP والعديد من الأدوات معدلات مشابهة بالإضافة إلى ميزات موسعة.

تستخدم هذه الأداة محرك JavaScript، لذا تتصرف الأنماط تماماً كما ستفعل في المتصفحات و Node.js. عند نقل نمط إلى لغة أخرى، أعد التحقق من سلوك أدوات القياس، ومعالجة ترميز Unicode، ودعم التطلع للخلف، لأن هذه تختلف بين التنفيذات.

أخطاء التعبيرات النمطية الشائعة وكيفية تجنبها

تتعلق أكثر أخطاء التعبيرات النمطية شيوعاً بـ الأحرف الخاصة غير المسربة، وأدوات القياس الشرهة (greedy quantifiers)، والنسيان للعلامات. تحمل الأحرف الوصفية مثل . ( ) [ ] { } + * ? ^ $ | \ معنى خاصاً ويجب الهروب منها بشرطة مائلة عكسية لتتم مطابقتها حرفياً، وفقاً لمواصفات ECMAScript ومستندات ويب MDN؛ النقطة العارية . تطابق أي حرف، وليست نقطة حقيقية.

تتجاوز أدوات القياس الشرهة مثل .+ الحد وتتلهم أكثر مما هو مقصود، لذا استخدم النسخ الكسولة .+? عند المطابقة بين المحددات. يؤدي نسيان علامة g إلى إرجاع المطابقة الأولى فقط، كما يتيح حذف المراسّات للأنماط مطابقة سلاسل فرعية غير مقصودة.

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

Frequently Asked Questions

sell

Tags