Omar Asaad نشر 11 أغسطس 2023 أرسل تقرير نشر 11 أغسطس 2023 ^(.*?)((0|1)?\d)/((0|1|2|3)?\d{1})/((19|20)\d{2})(.*?)$ هذا التعبير الذى فى الدرس يحدد صيغه التاريخ (dd/mm/yyyy)و(mm/dd/yyy) ازاى اخليه يحدد صيغه واحده اللى هى (mm/dd/yyy) 2 اقتباس
0 Mustafa Suleiman نشر 11 أغسطس 2023 أرسل تقرير نشر 11 أغسطس 2023 عليك أن تقوم بتعديله ليقبل فقط هذه الصيغة ويستبعد الصيغة الأخرى (dd/mm/yyyy) عن طريق تعديل بعض أجزاء التعبير: ^(0?[1-9]|1[0-2])/([0-2]?[0-9]|3[0-1])/((19|20)\d{2})$ (0?[1-9]|1[0-2]) يسمح للشهر بأن يكون مكونًا من رقم واحد مع الصفر الاختياري مثل 01 أو رقمين بدون صفر مثل 12. ([0-2]?[0-9]|3[0-1]) يعبر عن اليوم ويسمح لليوم بأن يكون مكونًا من رقم واحد أو اثنين مع الصفر الاختياري مثل 01 أو أي رقم يتراوح بين 00 و 29، بالإضافة إلى الرقم 30 و 31 إذا كان الشهر يسمح بذلك. ((19|20)\d{2}) يعبر عن السنة وهو لا يحتاج إلى تعديل. وإليك مثال على كود جافاسكريبت لاستخدام التعبير النمطي المعدل للتحقق من تاريخ بتنسيق "mm/dd/yyyy": function validateDate(inputDate) { const regex = /^(0?[1-9]|1[0-2])\/([0-2]?[0-9]|3[0-1])\/((19|20)\d{2})$/; return regex.test(inputDate); } const date1 = "08/11/2023"; // تاريخ صالح بالتنسيق المطلوب const date2 = "11/08/2023"; // تاريخ غير صالح بالتنسيق المطلوب const date3 = "2023/08/11"; // تاريخ غير صالح بأي تنسيق console.log(validateDate(date1)); // سيطبع true console.log(validateDate(date2)); // سيطبع false console.log(validateDate(date3)); // سيطبع false 1 اقتباس
0 Adnane Kadri نشر 12 أغسطس 2023 أرسل تقرير نشر 12 أغسطس 2023 بجانب العبارة النمطية التي اقترحها المدرب مصطفى، يمكنك ايضا استعمال هاته العبارة لذات الغرض: ^(.*?)((0|1)?\d)/((0|1|2|3)?\d{1})/((19|20)\d{2})(.*?)$ حيث: ^: يرمز إلى بداية السلسلة. (.*?): هذا الجزء يستخرج أي محتوى في النص. ((0|1)?\d): هذا الجزء يمثل الشهر في الصيغة (dd/mm/yyyy) أو (mm/dd/yyyy). يتم تمثيل الشهر بالأرقام من 1 إلى 12. ((0|1)?\d) يلتقط رقم الشهر، وقد يكون في الصيغة المفتوحة (مثل 03 أو 3) أو المغلقة (مثل 12). ((0|1|2|3)?\d{1}): هذا الجزء يمثل اليوم في الصيغة (dd/mm/yyyy) أو (mm/dd/yyyy). يتم تمثيل اليوم بالأرقام من 1 إلى 31. ((0|1|2|3)?\d{1}) يلتقط رقم اليوم، وقد يكون في الصيغة المفتوحة (مثل 07 أو 7) أو المغلقة (مثل 25). ((19|20)\d{2}): هذا الجزء يمثل السنة في الصيغة (dd/mm/yyyy) أو (mm/dd/yyyy). يلتقط السنة في القرنين 1900 أو 2000. (.*?): هذا الجزء الثاني يستخرج أي محتوى في النص. $: يرمز إلى نهاية السلسلة. اقتباس
0 Omar Asaad نشر 13 أغسطس 2023 الكاتب أرسل تقرير نشر 13 أغسطس 2023 بتاريخ On 11/8/2023 at 23:12 قال Mustafa Suleiman: عليك أن تقوم بتعديله ليقبل فقط هذه الصيغة ويستبعد الصيغة الأخرى (dd/mm/yyyy) عن طريق تعديل بعض أجزاء التعبير: ^(0?[1-9]|1[0-2])/([0-2]?[0-9]|3[0-1])/((19|20)\d{2})$ (0?[1-9]|1[0-2]) يسمح للشهر بأن يكون مكونًا من رقم واحد مع الصفر الاختياري مثل 01 أو رقمين بدون صفر مثل 12. ([0-2]?[0-9]|3[0-1]) يعبر عن اليوم ويسمح لليوم بأن يكون مكونًا من رقم واحد أو اثنين مع الصفر الاختياري مثل 01 أو أي رقم يتراوح بين 00 و 29، بالإضافة إلى الرقم 30 و 31 إذا كان الشهر يسمح بذلك. ((19|20)\d{2}) يعبر عن السنة وهو لا يحتاج إلى تعديل. وإليك مثال على كود جافاسكريبت لاستخدام التعبير النمطي المعدل للتحقق من تاريخ بتنسيق "mm/dd/yyyy": function validateDate(inputDate) { const regex = /^(0?[1-9]|1[0-2])\/([0-2]?[0-9]|3[0-1])\/((19|20)\d{2})$/; return regex.test(inputDate); } const date1 = "08/11/2023"; // تاريخ صالح بالتنسيق المطلوب const date2 = "11/08/2023"; // تاريخ غير صالح بالتنسيق المطلوب const date3 = "2023/08/11"; // تاريخ غير صالح بأي تنسيق console.log(validateDate(date1)); // سيطبع true console.log(validateDate(date2)); // سيطبع false console.log(validateDate(date3)); // سيطبع false تمام لكن ظهر لى مشكله اخره انه عند وجود نص قبل التاريخ لن يحدده ولذلك اضفت هذا الجزء (\D*?) على السطر الخاص بك هل هذا صحيح وشكرا لك مقدما 1 اقتباس
0 Mustafa Suleiman نشر 15 أغسطس 2023 أرسل تقرير نشر 15 أغسطس 2023 بتاريخ On 13/8/2023 at 20:59 قال Omar Asaad: تمام لكن ظهر لى مشكله اخره انه عند وجود نص قبل التاريخ لن يحدده ولذلك اضفت هذا الجزء (\D*?) على السطر الخاص بك هل هذا صحيح وشكرا لك مقدما صحيح ما ذكرته، فإن كنت ترغب في السماح بوجود نص قبل التاريخ، فعليك بإضافة (\D*?) لتمثيل أي عدد من الحروف غير الرقمية قبل التاريخ، مما يسمح للتاريخ أن يتبعه نص غير رقمي. اقتباس
السؤال
Omar Asaad
^(.*?)((0|1)?\d)/((0|1|2|3)?\d{1})/((19|20)\d{2})(.*?)$
هذا التعبير الذى فى الدرس يحدد صيغه التاريخ (dd/mm/yyyy)و(mm/dd/yyy) ازاى اخليه يحدد صيغه واحده اللى هى
(mm/dd/yyy)
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.