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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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. (.*?): هذا الجزء الثاني يستخرج أي محتوى في النص. $: يرمز إلى نهاية السلسلة. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mustafa Suleiman نشر 15 أغسطس 2023 أرسل تقرير مشاركة نشر 15 أغسطس 2023 بتاريخ On 13/8/2023 at 20:59 قال Omar Asaad: تمام لكن ظهر لى مشكله اخره انه عند وجود نص قبل التاريخ لن يحدده ولذلك اضفت هذا الجزء (\D*?) على السطر الخاص بك هل هذا صحيح وشكرا لك مقدما صحيح ما ذكرته، فإن كنت ترغب في السماح بوجود نص قبل التاريخ، فعليك بإضافة (\D*?) لتمثيل أي عدد من الحروف غير الرقمية قبل التاريخ، مما يسمح للتاريخ أن يتبعه نص غير رقمي. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
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
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.