0% found this document useful (0 votes)
22 views32 pages

JS (Part 2)

Uploaded by

Ikram Elaima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views32 pages

JS (Part 2)

Uploaded by

Ikram Elaima
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

‫انذرس األول ‪ :‬مقذمة فى انبزمجة كبئنية انحوجه(انبزمجة انشيئية) ‪3‬‬

‫)‪3 (introduction in object oriented programming‬‬


‫انذرس انثبني ‪ :‬انكبئنبت انزقمية داخم نغة انجبفب اسكزبث ‪11‬‬
‫)‪11 (JavaScript Number Object‬‬
‫انذرس انثبنث ‪ :‬انكبئنبت انمنطقية داخم نغة انجبفب اسكزبث ‪13‬‬
‫)‪13 (JavaScript Boolean Object‬‬
‫انذرس انزابع ‪ :‬انكبئنبت اننصية داخم نغة انجبفب اسكزبث ‪11‬‬
‫)‪11 (JavaScript String Object‬‬
‫انذرس انخبمس ‪ :‬كبئن انمصفوفبت داخم نغة انجبفب اسكزبث ‪11‬‬
‫)‪11 (JavaScript Array Object‬‬
‫انذرس انسبدس ‪ :‬كبئن انحبريخ داخم نغة انجبفب اسكزبث ‪02‬‬
‫)‪02 (JavaScript Date Object‬‬
‫انذرس انسببع ‪ :‬كبئن انمعبدالت انزيبضية داخم نغة انجبفب اسكزبث ‪01‬‬
‫)‪01 (JavaScript Math Object‬‬
‫انذرس انثبمن ‪ :‬كبئن انحعبيزات انمنحظمة داخم نغة انجبفب اسكزبث ‪02‬‬
‫)‪02 (JavaScript RegExp Object‬‬
‫انخبجمة ‪31‬‬
‫ميحرلا نمحرلا هللا‬ ‫بسم‬
‫‪JavaScript Tutorial part 2‬‬

‫دروس تعليمة فى ‪JavaScript‬‬

‫الدرس األول ‪ :‬مقدمة فى البرمجة كائنية التوجه(البرمجة الشيئية)‬


‫)‪(introduction in object oriented programming‬‬

‫‪ ‬تمهيد ‪:‬‬
‫‪ JavaScript ‬هً لغة برمجة كائنٌة التوجه أو لغة البرمجة الشٌئٌة ‪oop‬‬

‫لماذا تسمى لغة ‪ java script‬ب )‪object oriented programming (oop‬‬


‫ٌمكن أن ٌطلك على لغة البرمجة اسم الكائن الموجه إذا لدمت أربع لدرات أساسٌة للمطورٌن هم‪:‬‬
‫‪ : Encapsulation -1‬معناها التغلٌف‬
‫وهى المدرة على تخزٌن المعلومات ذات الصلة حٌث ٌمكن تخزٌن بٌانات ‪ data‬و دوال‬
‫‪ methods‬معًا فً كائن ‪object‬‬

‫‪ : Aggregation -2‬معناها التجمٌع‬


‫وهى المدرة على تخزٌن كائن واحد داخل كائن آخر‬

‫‪ : Inheritance -3‬معناها الوراثة‬


‫وهى لدرة ‪ class‬على االعتماد والوراثة ‪ inheritance‬من ‪ class‬آخر أو من أكثر من ‪class‬‬
‫حٌث ٌمكن ان ٌرث بعض خصائص ‪ properties‬وبعض الدوال ‪methods‬‬

‫‪ : Polymorphism -4‬معناها تعدد األشكال‬


‫وهى المدرة على كتابة وظٌفة ‪ function‬أو دالة ‪ method‬واحدة حٌث تمكن تنفٌذها بمجموعة‬
‫متنوعة من الطرق المختلفة‬

‫‪ Objects‬تتكون من ‪Attributes‬‬
‫‪ ‬وإذا كانت هذه ‪ attribute‬تحتوي على ‪ ، function‬ففى هذه الحالة تسمى ‪method‬‬
‫‪ ‬وإذا كانت هذه ‪ attribute‬ال تحتوي على ‪ ، function‬ففى هذه الحالة تسمى ‪property‬‬
‫‪ : Object Properties‬خصائص الكائن‬
‫‪ ‬أنواع بٌانات خصائص الكائن ‪ :‬لد تكون خصائص الكائنات أى نوع من األنواع التالٌة‬
‫‪ : primitive data types ‬أنواع البٌانات األولٌة وهى ‪ number‬و ‪ boolean‬و ‪string‬‬
‫‪ : abstract data types ‬أنواع البٌانات المجردة مثل ‪object‬‬
‫‪ ‬لد تكون خصائص الكائن عبارة عن ‪ٌ local variable‬تم استخدامها داخلًٌا فً ‪ ، methods‬ولد‬
‫تكون ‪ global variables‬أو ‪ٌ visible variable‬تم استخدامها بشكل عام خالل الصفحة‪.‬‬

‫‪ : adding a property to an object ‬كٌفٌة اضافة خاصٌة للكائن‬

‫‪ :getting a value of property ‬كٌفٌة الحصول على لٌمة خاصٌة‬

‫فى السطر السابك حجزنا متغٌر اسمه "‪ "anyName‬وخصصنا فٌه لٌمة الخاصٌة‬

‫‪ ‬مثال ‪ :‬فى المثال التالى نرٌد الحصول على لٌمة ‪title‬‬

‫‪ : Object methods‬دوال الكائن‬


‫‪ ‬الدالة ‪ method‬هً الوظائف ‪ functions‬التً تجعل ‪ٌ object‬موم بشًء ما أو ٌسمح بشًء ٌتم‬
‫المٌام به‪ .‬هنان اختالف بسٌط بٌن الدالة ‪ method‬وبٌن الوظٌفة ‪function‬‬
‫‪ function ‬هً وحدة جمل لائمة بذاتها ٌمكن تنفٌذها فى اى مكان فى الصفحة‬
‫‪ method ‬هى التى ترتبط بالكائن وٌمكن اإلشارة إلٌها بواسطة الكلمة المحجوزة "‪"this‬‬
‫‪ ‬الدوال ‪ methods‬مفٌدة لكل شًء حٌث تستخدم لعرض محتوٌات الكائن إلى الشاشة وتستخدم ألداء‬
‫العملٌات الحسابٌة المعمدة على مجموعة من ‪ properties‬و ‪parameters‬‬

‫‪ ‬مثال ‪ :‬فى المثال التالى نستخدم الدالة ‪ write‬لطباعة أى محتوى نرٌده داخل ‪document‬‬
‫‪ : User-Defined Objects‬كائنات معرفة من لبل المستخدم‬
‫جمٌع الكائنات المعرفة من لبل المستخدم تسمى ‪ user-defined objects‬والكائنات المعرفة مسبما ً‬
‫داخل اللغة تسمى ‪ built-in objects‬وهً عبارة عن سالالت للكائن ‪descendants of object‬‬
‫والتى ترث من الكائن الذى ٌسمى "‪"Object‬‬

‫‪ : The new Operator ‬استخدام المعامل ‪new‬‬


‫ٌتم استخدام هذا ‪ operator‬إلنشاء مثٌل للكائن ‪ instance of an object‬بمعنى آخر النشاء نسخه‬
‫جدٌدة من الكائن‬
‫نكتب بعد المعامل ‪ new‬دالة ال ُمنشئ أو دالة البناء ‪constructor method‬‬
‫‪ : constructor method ‬هى عبارة عن دوال تم إنشائها مسبما ً داخل لغة الجافا اسكربت‬

‫‪ ‬مثال ‪:‬‬

‫‪: The Object() Constructor ‬‬


‫‪ : Constructor‬هو عبارة عن دالة التى تنشئ الكائن ‪ create object‬وهى المسؤولة عن عملٌة‬
‫‪initialization of object‬‬
‫تمكننا لغة الجافا اسكربت من عمل كائن جدٌد عن طرٌك ‪ Object() Constructor‬ولٌمة هذا‬
‫‪ٌ object‬تم تخزٌنها داخل متغٌر ‪variable‬‬
‫هذا المتغٌر ‪ variable‬هو عبارة عن مرجع لكائن جدٌد ‪ reference to the new object‬ولذلن‬
‫فإن خصائص ‪ properties‬التى تم تخصٌصها للكائن لٌست ‪ variable‬وال ٌتم تعرٌفها عن طرٌك‬
‫‪var keyword‬‬

‫‪ : Assigning properties to object ‬تعٌٌن خصائص للكائن‬


‫هنان طرٌمتٌن عند تعٌٌن ‪ properties‬أو تخصٌص ‪ properties‬للكائن‬
‫‪ ‬الطرٌمة األولى ‪ :‬عن طرٌك استخدام ‪Object() Constructor‬‬
‫‪ ‬الطرٌمة الثانٌة ‪ :‬عن طرٌك استخدام ‪User-Defined Function‬‬
‫‪ : this keyword ‬كلمة ‪ this‬هى كلمة محجوزة داخل لغة ‪ javascript‬تستخدم لنشٌر إلى الكائن الذى‬
‫نخصص له ‪ properties‬و ‪methods‬‬
‫‪ ‬مثال ‪ : 1‬عن طرٌك استخدام ‪Object() Constructor‬‬

‫‪ ‬الحظ الناتج‬

‫‪ ‬فى المثال السابك نالحظ كاآلتى ‪:‬‬


‫‪ ‬فى السطر ‪ 6‬لمنا باستخدام ‪ Object() constructor‬النشاء الكائن‬
‫‪ ‬فى السطر ‪ 7‬لمنا بتخصٌص خاصٌة للكائن ‪ book‬اسمها ‪ subject‬ولٌمتها "‪"Java script‬‬
‫‪ ‬فى السطر ‪ 8‬لمنا بتخصٌص خاصٌة للكائن ‪ book‬اسمها ‪ author‬ولٌمتها "‪"Mahmoud‬‬

‫‪ : dot (.) ‬اهمٌة النمطة ‪ dot‬أو ) ‪( .‬‬


‫‪ -1‬لتخصٌص المٌم للكائنات ‪Assigning values‬‬
‫‪ -2‬للدخول إلى الكائن ‪Access to object‬‬
‫‪ -3‬الحصول على المٌم ‪getting values‬‬
‫‪ ‬مثال ‪ : 2‬عن طرٌك استخدام ‪User-Defined Function‬‬

‫‪ ‬الحظ الناتج‬

‫‪ ‬فى المثال السابك نالحظ اآلتى ‪:‬‬


‫‪ ‬فى السطر ‪ 6-7-8‬لمنا بعمل دالة لتخصٌص لٌم للكائن‬
‫‪ ‬فى السطر ‪ 14‬لمنا باستخدام ‪ User-Defined Function‬اسمها ‪ book‬النشاء الكائن‬
‫‪ ‬فى السطر ‪ 15‬لمنا بتخصٌص خاصٌة للكائن ‪ book‬اسمها ‪ subject‬ولٌمتها "‪"Java script‬‬
‫‪ ‬فى السطر ‪ 16‬لمنا بتخصٌص خاصٌة للكائن ‪ book‬اسمها ‪ author‬ولٌمتها "‪"Mahmoud‬‬
‫‪ : Defining Methods for an Object‬تعرٌف دوال للكائن‬
‫فى األمثلة السابمة الحظنا كٌف نستخدم ‪ constructor‬النشاء ‪ object‬وكٌف نخصص ‪properties‬‬
‫لهذا ‪ object‬أما اآلن سوف نتمكن من عمل ‪ methods‬للكائن‬

‫‪ ‬مثال ‪add a function to object : 3‬‬

‫‪ ‬الحظ الناتج‬

‫‪ ‬فى المثال السابك نالحظ أننا لد استخدمنا الطرٌمة الثانٌة النشاء كائن ‪ create object‬ثم لمنا‬
‫بتخصٌص ‪ properties‬وأٌضا ً لمنا بتعٌٌن ‪ method‬اسمها ‪ addprice‬للكائن ‪book‬‬
‫‪ٌ : The 'with' Keyword‬مكن استخدام الكلمة المحجوزة ‪ with‬كنوع من لالشارة إلى خصائص‬
‫الكائن ‪ object properties‬أو دوال الكائن ‪ object methods‬بطرٌمة مختصرة‬
‫‪ Object ‬الذى ٌستخدم ‪ٌ with‬عتبر ‪ default object‬ولذلن ٌمكن استخدام كالً من ‪ properties‬و‬
‫‪ methods‬لهذا الكائن بدون استخدام اسم الكائن ‪ naming the object‬وبدون استخدام النمطة ( ‪) .‬‬

‫‪: Syntax ‬‬

‫‪ ‬مثال ‪:‬‬

‫‪ ‬الحظ الناتج‬

‫‪ : JavaScript Native Objects‬الكائنات األصلٌة داخل لغة الجافا اسكربت‬


‫ داخل لغة الجافا‬built-in objects ً ‫ انواع من الكائنات المضمنة أو التى تم انشائها مسبما‬7 ‫ ٌوجد‬
‫اسكربت سوف نتعرف علٌهم فى الفصول المادمة بالتفصٌل ولكن سوف نأخذ نبذة مختصرة على‬
: ‫كل نوع وهم‬
JavaScript Number Object -1

JavaScript Boolean Object -2

JavaScript String Object -3

JavaScript Array Object -4

JavaScript Date Object -5

JavaScript Math Object -6

JavaScript RegExp Object -7


‫الدرس الثاني ‪ :‬الكائنات الرقمية داخل لغة الجافا اسكربت‬
‫)‪(JavaScript Number Object‬‬
‫‪ ‬تموم أنواع البٌانات الرلمٌة ‪ Number data types‬بتخزٌن المٌم الرلمٌة ‪.numeric values‬‬
‫وهً أنواع بٌانات غٌر لابلة للتغٌٌر ‪ ،‬وٌعنً أن تغٌٌر لٌمة نوع بٌانات عدد ٌؤدي إلى تخصٌص كائن‬
‫جدٌد ‪.newly allocated object‬‬
‫‪ : Number ‬عبارة عن تخزٌن لٌم رلمٌة وهنان عدة أنواع داخل لغة ‪ javascript‬مثل ‪:‬‬
‫‪ : Integer ‬وهى أعداد صحٌحة ولد تكون موجبة أو سالبة مثل ( ‪ 5‬أو ‪) -5‬‬
‫‪ : Float ‬وهى أعداد عشرٌة (‪ )integer + fraction part‬مثل )‪(5.25‬‬

‫‪ ‬ال داعً للملك بشأن ‪ Number Object‬ألن المتصفح ٌموم تلمائًٌا بتحوٌل المٌم الحرفٌة العددٌة‬
‫‪ number literals‬إلى فئة المثٌلة العدد ‪instances of the number class‬‬

‫‪: Syntax ‬‬

‫‪ٌ ‬تم كتابة الرلم بداخل الموسٌن مكان كلمة ‪ number‬ولكن عندما نموم بادخال لٌمة غٌر رلمٌة بٌن‬
‫الموسٌن أو ما ٌسمى بالبارامٌتر ‪ argument‬فلن ٌتم تحوٌل ‪ argument‬إلى لٌمة رلمٌة وسوف‬
‫ٌموم بارجاع لٌمة ‪ NaN‬أى (‪)Not-a-Number‬‬

‫‪ : Number Properties‬الخصائص الخاصة بالكائن ‪Number‬‬


‫‪Property‬‬ ‫‪meaning‬‬ ‫‪Description‬‬
‫‪MAX_VALUE‬‬ ‫ألصً لٌمة‬ ‫أمجش ق‪َٞ‬خ ٍَنْخ ‪َٝ‬نِ أُ ‪ٝ‬ؾز٘‪ٖٝ‬ب سقٌ ف‪JavaScript ٚ‬‬
‫‪MIN_VALUE‬‬ ‫ألل لٌمة‬ ‫أصغش ق‪َٞ‬خ ٍَنْخ ‪َٝ‬نِ أُ ‪ٝ‬ؾز٘‪ٖٝ‬ب سقٌ ف‪JavaScript ٜ‬‬
‫‪NaN‬‬ ‫لٌس لٌمة رلمٌة‬ ‫ٕ‪ ٚ‬ق‪َٞ‬خ صبثزخ ٗرغبٗ‪ ٛ‬ق‪َٞ‬خ غ‪ٞ‬ش سقَ‪ٞ‬خ‬
‫‪NEGATIVE_INFINITY‬‬ ‫ألل ما ال نهاٌة‬ ‫ق‪َٞ‬خ أقو ٍِ أقو ق‪َٞ‬خ ‪MIN_VALUE‬‬
‫‪POSITIVE_INFINITY‬‬ ‫أكبر ما ال نهاٌة‬ ‫ق‪َٞ‬خ أمجش ٍِ أمجش ق‪َٞ‬خ ‪MAX_VALUE‬‬
‫‪prototype‬‬ ‫النموزج األولى‬ ‫خبص‪ٞ‬خ صبثزخ ىينبئْبد رغزخذً ىزؼ‪ ِٞٞ‬خصبئص ٗدٗاه‬
‫عذ‪ٝ‬ذح ىينبئْبد ف‪ document ٜ‬اىؾبى‪ٞ‬خ‬
‫‪constructor‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ اىذاىخ اىز‪ ٜ‬أدد إى‪ ٚ‬إّشبء ٕزا اىنبئِ ال ُمنشئ أو ال ُمشٌد أو‬
‫دالة انشاء الكائن‬ ‫اىق‪َٞ‬خ االفزشاظ‪ٞ‬خ ْٕب ٕ‪Number object ٚ‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل خاصٌة ‪property‬‬


‫‪ : Number methods‬الدوال الخاصة بالكائن ‪Number‬‬
‫‪method‬‬ ‫‪meaning‬‬ ‫‪Description‬‬
‫)(‪toExponential‬‬ ‫دالة األس‬ ‫داىخ رغزخذً ىؼشض اىشقٌ ثبىق‪َٞ‬خ األع‪ٞ‬خ‬
‫)(‪toFixed‬‬ ‫داىخ رغزخذً ىزؾذ‪ٝ‬ذ ػذد األسقبً اىؼشش‪ٝ‬خ ثؼذ اىؼالٍخ اىؼشش‪ٝ‬خ دالة العالمة العشرٌة‬
‫دالة تحوٌل الرلم لنص )(‪toLocaleString‬‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و ‪ number‬إى‪َٝ string ٚ‬نِ قشائزٔ‬
‫ٗرَضو اىشقٌ ثبعزخذاً ىغخ اىج‪ٞ‬ئخ‪.‬‬
‫)(‪toPrecision‬‬ ‫دالة لضبط الدلة‬ ‫داىخ رغزخذً ىزؾذ‪ٝ‬ذ ػذد ‪ digits‬اىز‪ ٚ‬قجو ٗثؼذ اىؼالٍخ‬
‫اىؼشش‪ٝ‬خ‬
‫)(‪toString‬‬ ‫دالة تحوٌل للرلم لنص‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و ‪ number‬إى‪string ٚ‬‬
‫)(‪valueOf‬‬ ‫لٌمة الرلم‬ ‫داىخ رغزخذً ىزشعغ ق‪َٞ‬خ ‪number‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل دالة ‪method‬‬


‫الدرس الثالث ‪ :‬الكائنات المنطقية داخل لغة الجافا اسكربت‬
‫)‪(JavaScript Boolean Object‬‬
‫‪ ‬تموم أنواع البٌانات الرلمٌة ‪ Boolean data types‬بتخزٌن المٌم المنطمٌة ‪.boolean values‬‬

‫‪ : Boolean ‬عبارة عن تخزٌن لٌم منطمٌة وهنان لٌمتٌن فمط ‪:‬‬


‫‪ : true ‬وتعنى تحمك الشرط أو نعم ‪ Yes‬أو واحد ‪1‬‬
‫‪ : false ‬وتعنى عدم تحمك الشرط أو ال ‪ No‬أو صفر ‪0‬‬

‫‪: Syntax ‬‬

‫‪ٌ ‬تم كتابة المٌمة بداخل الموسٌن مكان كلمة ‪value‬‬


‫‪ ‬اذا لمنا بكاتبة ‪ 0‬أو ‪ -0‬أو ‪ NaN‬أو ‪ undefined‬أو لٌمة نصٌة فارغة ‪ empty string‬أو لم ندخل‬
‫لٌمة فسوف تكون لٌمة ‪ object‬االفتراضٌة ‪false‬‬

‫‪ : Boolean Properties‬الخصائص الخاصة بالكائن ‪Boolean‬‬


‫‪Property‬‬ ‫‪meaning‬‬ ‫‪Description‬‬
‫‪prototype‬‬ ‫النموزج األولى‬ ‫خبص‪ٞ‬خ صبثزخ ىينبئْبد رغزخذً ىزؼ‪ ِٞٞ‬خصبئص ٗدٗاه‬
‫عذ‪ٝ‬ذح ىينبئْبد ف‪ document ٜ‬اىؾبى‪ٞ‬خ‬
‫‪constructor‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ اىذاىخ اىز‪ ٜ‬أدد إى‪ ٚ‬إّشبء ٕزا اىنبئِ ال ُمنشئ أو ال ُمشٌد أو‬
‫دالة انشاء الكائن‬ ‫اىق‪َٞ‬خ االفزشاظ‪ٞ‬خ ْٕب ٕ‪Boolean object ٚ‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل خاصٌة ‪property‬‬


‫‪ : Boolean methods‬الدوال الخاصة بالكائن ‪Boolean‬‬
‫‪method‬‬ ‫‪meaning‬‬ ‫‪Description‬‬
‫)(‪toSource‬‬ ‫دالة المصدر‬ ‫داىخ رغزخذً السعبع ‪ source‬ىينبئِ مق‪َٞ‬خ ّص‪ٞ‬خ‬
‫)(‪toString‬‬ ‫دالة تحوٌل للرلم لنص‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و ‪ boolean‬إى‪ ٚ‬ق‪َٞ‬خ ّص‪ٞ‬خ ‪string‬‬
‫)(‪valueOf‬‬ ‫لٌمة الرلم‬ ‫داىخ رغزخذً ىزشعغ اىق‪َٞ‬خ اىجذائ‪ٞ‬خ ىو ‪Boolean object‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل دالة ‪method‬‬


‫الدرس الرابع ‪ :‬الكائنات النصية داخل لغة الجافا اسكربت‬
‫)‪(JavaScript String Object‬‬
‫‪ ‬تموم أنواع البٌانات النصٌة ‪ String data types‬بتخزٌن المٌم النصٌة ‪.String values‬‬
‫‪ : Strings ‬السلسالت وهى عبارة عن سلسلة من األحرف التً تم ترمٌزها ‪ encoded‬بشكل صحٌح‪.‬‬
‫ولد تكون من فراغات ‪ spaces‬أو أى حرف موجود على لوحة المفاتٌح ‪( keyboard‬مجموعة‬
‫متجاورة من الحروف )‬

‫‪ ‬ال داعً للملك بشأن ‪ String Object‬ألن المتصفح ٌموم تلمائًٌا بتحوٌل بٌن ‪string primitives‬‬
‫وبٌن ‪ ، String objects‬فٌمكنن استدعاء أي من الطرق المساعدة ‪ String object‬وتنفٌذها على‬
‫‪.string primitive‬‬

‫‪: Syntax ‬‬

‫‪ٌ ‬تم كتابة المٌمة النصٌة بداخل الموسٌن مكان كلمة ‪string‬‬

‫‪ : String Properties‬الخصائص الخاصة بالكائن ‪String‬‬


‫‪Property‬‬ ‫‪Description‬‬
‫‪length‬‬ ‫خبص‪ٞ‬خ ىزؾذ‪ٝ‬ذ غ٘ه اىغيغخ (ػذد اىؾشٗف ٗاىَغبفبد)‬
‫‪prototype‬‬ ‫خبص‪ٞ‬خ صبثزخ ىينبئْبد رغزخذً ىزؼ‪ ِٞٞ‬خصبئص ٗدٗاه عذ‪ٝ‬ذح ىينبئْبد ف‪ٜ‬‬
‫‪ document‬اىؾبى‪ٞ‬خ‬
‫‪constructor‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ اىذاىخ اىز‪ ٜ‬أدد إى‪ ٚ‬إّشبء ٕزا اىنبئِ اىق‪َٞ‬خ االفزشاظ‪ٞ‬خ‬
‫ْٕب ٕ‪String object ٚ‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل خاصٌة ‪property‬‬


‫‪ : String methods‬الدوال الخاصة بالكائن ‪String‬‬
‫‪method‬‬ ‫‪Description‬‬
‫)(‪charAt‬‬ ‫داىخ رغزخذً إل‪ٝ‬غبد ق‪َٞ‬خ ‪ character‬ػْذ ‪ٍ index‬ؼ‪ِٞ‬‬
‫)(‪charCodeAt‬‬ ‫داىخ رغزخذً ىؼشض ق‪َٞ‬خ ‪ Unicode‬ىيؾشف ػْذ ‪ٍ index‬ؼ‪ِٞ‬‬
‫)(‪concat‬‬ ‫داىخ رغزخذً ىذٍظ ّص‪ٍ ِٞ‬ؼب ً (‪ٗ )2 string‬ثزشعغ ‪ string‬عذ‪ٝ‬ذ‬
‫)(‪indexOf‬‬ ‫داىخ رغزخذً ىزشعغ ق‪َٞ‬خ ‪ index‬ألٗه ‪ string‬رغذٓ‬
‫)(‪lastIndexOf‬‬ ‫داىخ رغزخذً ىزشعغ ق‪َٞ‬خ ‪ٟ index‬خش ‪ string‬رغذٓ‬
‫)(‪localeCompare‬‬ ‫داىخ رغزخذً ىَقبسّخ ث‪ ِٞ‬عيغيز‪(2 string) ِٞ‬‬
‫)(‪match‬‬ ‫داىخ رغزخذً ىَقبسّخ ث‪ٗ regular expression ِٞ‬ث‪string ِٞ‬‬
‫)(‪replace‬‬ ‫داىخ رغزخذً ىيؼض٘سػي‪ ٚ‬رطبثق ث‪ٗ regular expression ِٞ‬ث‪string ِٞ‬‬
‫ٗاعزجذاه اىغيغيخ اىفشػ‪ٞ‬خ اىَزطبثقخ ثغيغيخ فشػ‪ٞ‬خ عذ‪ٝ‬ذح‪.‬‬
‫)(‪search‬‬ ‫داىخ رغزخذً ىيجؾش ػِ رطبثق ث‪ٗ regular expression ِٞ‬ث‪string ِٞ‬‬
‫)(‪slice‬‬ ‫داىخ رغزخذً العزخشاط ٍقطغ ‪ٗ string ٍِ slice‬ثزشعغ ‪ string‬عذ‪ٝ‬ذ‬
‫)(‪split‬‬ ‫داىخ رغزخذً ىزقغ‪ string ٌٞ‬إى‪ٍ ٚ‬غَ٘ػخ ٍِ ‪ substring‬أٗ ‪array‬‬
‫)(‪substr‬‬ ‫داىخ رغزخذً ىزشعغ عيغيخ فشػ‪ٞ‬خ ػْذ ‪ٍ index‬ؼ‪ٗ ِٞ‬ثط٘ه ٍؼ‪length ِٞ‬‬
‫)(‪substring‬‬ ‫داىخ رغزخذً ىزشعغ عيغيخ فشػ‪ٞ‬خ ث‪ٗ start index ِٞ‬ث‪end index ِٞ‬‬
‫)(‪toLocaleLowerCase‬‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و أ‪ ٙ‬ؽشف ‪ upper‬إى‪ٍ lower ٚ‬غ ٍشاػبح ‪current‬‬
‫‪locale‬‬
‫)(‪toLocaleUpperCase‬‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و أ‪ ٙ‬ؽشف ‪ lower‬إى‪ٍ upper ٚ‬غ ٍشاػبح ‪current‬‬
‫‪locale‬‬
‫)(‪toLowerCase‬‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و أ‪ ٙ‬ؽشف ‪ upper‬إى‪lower ٚ‬‬
‫)(‪toUpperCase‬‬ ‫داىخ رغزخذً ىزؾ٘‪ٝ‬و أ‪ ٙ‬ؽشف ‪ lower‬إى‪upper ٚ‬‬
‫)(‪toString‬‬ ‫داىخ رغزخذً ق‪َٞ‬خ ّص‪ٞ‬خ ىينبئِ‬
‫)(‪valueOf‬‬ ‫داىخ رغزخذً ىزشعغ اىق‪َٞ‬خ اىجذائ‪ٞ‬خ ىينبئِ‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل دالة ‪method‬‬


‫‪ : String HTML Wrappers‬الدوال الخاصة بالكائن ‪ String‬تم تضمٌنها داخل لغة ‪HTML‬‬
‫‪Property‬‬ ‫‪Description‬‬
‫)(‪anchor‬‬ ‫داىخ رقً٘ ثإّشبء ‪ anchor‬داخو ىغخ ‪HTML‬‬
‫)(‪big‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ثخػ مج‪ٞ‬ش مَب ى٘ مبّذ ف‪>big< ٜ‬‬
‫)(‪blink‬‬ ‫داىخ رقً٘ ثإّشبء ‪ string‬مٍ٘‪ٞ‬ط ‪ blink‬مَب ى٘ مبّذ ف‪>blink< ٜ‬‬
‫)(‪bold‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٗ string‬ػشظٖب ثبىخػ اىؼش‪ٝ‬ط مَب ى٘ مبّذ ف‪.>b< ٜ‬‬
‫)(‪fixed‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ثخػ صبثذ مَب ى٘ مبّذ ف‪>tt< ٜ‬‬
‫)(‪fontcolor‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ثبىيُ٘ اىَؾذد مَب ى٘ مبّذ ف‪ٜ‬‬
‫<"‪>font color = "color‬‬
‫)(‪fontsize‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ف‪ ٜ‬ؽغٌ اىخػ اىَؾذد مَب ى٘ مبّذ ف‪ٜ‬‬
‫<"‪>font size = "size‬‬
‫)(‪italics‬‬ ‫داىخ رقً٘ ثإّشبء ‪ string‬عيغيخ ىزنُ٘ ٍبئيخ ‪ ،‬مَب ى٘ مبّذ ف‪>i< ٜ‬‬
‫)(‪link‬‬ ‫داىخ رقً٘ ثإّشبء ‪ string‬مؼجبسح ػِ ‪ٝ hypertext‬طيت ػْ٘اُ ‪ URL‬آخش‬
‫)(‪small‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ثخػ صغ‪ٞ‬ش ‪ ،‬مَب ى٘ مبّذ ف‪>small< ٜ‬‬
‫)(‪strike‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ّص‪ٞ‬خ ٍزقطؼخ ‪ ،‬مَب ى٘ مبّذ ف‪>strike< ٜ‬‬
‫)(‪sub‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب مخػ ٍْخفط ‪ ،‬مَب ى٘ مبّذ ف‪>sub< ٜ‬‬
‫)(‪sup‬‬ ‫داىخ رقً٘ ثإّشبء ‪ٝ string‬زٌ ػشظٖب ػي‪ ٚ‬اىْؾ٘ اىَشرفغ ‪ ،‬مَب ى٘ مبّذ ف‪>sup< ٜ‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل دالة ‪method‬‬


‫الدرس الخامس ‪ :‬كائن المصفوفات داخل لغة الجافا اسكربت‬
‫)‪(JavaScript Array Object‬‬

‫‪ : Array ‬المصفوفات وهى عبارة عن تخزٌن لٌم متعددة فً متغٌر واحد‬


‫أو مجموعة متسلسلة من العناصر ذات حجم ثابت من نفس النوع‪.‬‬
‫أو هى مجموعة من المتغٌرات من نفس النوع‬
‫ٌتم استخدام المصفوفات لتخزٌن مجموعة من البٌانات ‪collection of data‬‬

‫‪ ‬البارامٌترات التى نمررها للمصفوفة ‪ Array parameter‬هً عبارة عن ‪ list‬من السالسل النصٌة‬
‫‪ strings‬أو األعداد الصحٌحة ‪integers‬‬
‫‪ ‬عند تحدٌد معامالت رلمٌة مفردة باستخدام ‪ ، constructor‬فإنن تحدد الطول المبدئً للمصفوفة‪.‬‬
‫الحد األلصى المسموح به للمصفوفاتهو هو ‪4,294,967,295‬‬
‫‪ٌ ‬بدأ العد أو الفهرسة ‪ index‬للمصفوفة من الرلم ‪0‬‬
‫‪ ‬العنصر األول ٌبدأ ب ]‪[0‬‬
‫‪ ‬العنصر الثانى ٌبدأ ب ]‪[1‬‬
‫‪ ‬العنصر الثالث ٌبدأ ب ]‪[2‬‬

‫‪ : Set values to Array ‬تخصٌص لٌم المصفوفة‬


‫نستخدم معامل المطع ‪ slice operator‬كما بالشكل ) ] [ ) أو ) ] ‪ ( [start : End‬للدخول الى‬
‫عناصر المصفوفة ‪elements of array‬‬

‫‪ : Access to Array ‬الدخول إلى عناصر المصفوفة‬


‫نستخدم معامل المطع ‪ slice operator‬كما بالشكل ) ] [ ) أو ) ] ‪ ( [start : End‬للوصول الى‬
‫عناصر المصفوفة ‪elements of array‬‬

‫‪: Syntax ‬‬

‫‪ ‬ال ٌمكن كتابة أكثر من نوع داخل المصفوفة ولكن ٌجب كتابة نوع واحد فمط‬
‫‪ : Array Properties‬الخصائص الخاصة بالكائن ‪Array‬‬
‫‪Property‬‬ ‫‪Description‬‬
‫‪length‬‬ ‫خبص‪ٞ‬خ ىزؾذ‪ٝ‬ذ غ٘ه ػْبصش اىَصف٘فخ‬
‫‪prototype‬‬ ‫خبص‪ٞ‬خ صبثزخ ىينبئْبد رغزخذً ىزؼ‪ ِٞٞ‬خصبئص ٗدٗاه عذ‪ٝ‬ذح ىينبئْبد ف‪ٜ‬‬
‫‪ document‬اىؾبى‪ٞ‬خ‬
‫‪constructor‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ اىذاىخ اىز‪ ٜ‬أدد إى‪ ٚ‬إّشبء ٕزا اىنبئِ اىق‪َٞ‬خ االفزشاظ‪ٞ‬خ‬
‫ْٕب ٕ‪Array object ٚ‬‬
‫‪input‬‬ ‫ٕزٓ اىخبص‪ٞ‬خ ٍ٘ع٘دح فقػ ف‪ ٜ‬اىَصف٘فبد اىز‪ ٜ‬رٌ إّشبؤٕب ث٘اعطخ ٍطبثقبد‬
‫اىزؼج‪ٞ‬ش اىؼبد‪regular expression matches ٛ‬‬
‫‪index‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ ق‪َٞ‬خ ‪ index‬ػْذ ق‪َٞ‬خ ‪ٍ string‬ؼ‪ِٞ‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل خاصٌة ‪property‬‬

‫‪ : Array methods‬الدوال الخاصة بالكائن ‪Array‬‬


‫‪method‬‬ ‫‪Description‬‬
‫)(‪concat‬‬ ‫داىخ رغزخذً ىذٍظ ٍصف٘فز‪ ِٞ‬أٗ ث‪ ِٞ‬ق‪ٍ ٌٞ‬صف٘فز‪ِٞ‬‬
‫)(‪every‬‬ ‫داىخ رغزخذً إلسعبع ‪ true‬إرا مبُ مو ػْصش ف‪ٕ ٜ‬زا اىَصف٘فخ ‪ٝ‬ؾقق داىخ‬
‫االخزجبس‪.‬‬
‫)(‪filter‬‬ ‫داىخ رغزخذً إلّشبء ٍصف٘فخ عذ‪ٝ‬ذح رؾز٘‪ ٛ‬ػي‪ ٚ‬عَ‪ٞ‬غ ػْبصشٍصف٘فخ ٍفيزشح‬
‫)(‪forEach‬‬ ‫داىخ رقً٘ ثبعزذػبء ‪ function‬ىنو ػْصش ٍِ ػْبصش اىَصف٘فخ‬
‫)(‪indexOf‬‬ ‫داىخ رغزخذً ىؼشض ‪ index‬ألٗه ‪ٝ string‬ظٖش‬
‫)(‪lastIndexOf‬‬ ‫داىخ رغزخذً ىؼشض ‪ٟ index‬خش ‪ٝ string‬ظٖش‬
‫)(‪join‬‬ ‫داىخ رغزخذً ىشثػ ‪ string‬ثنو ػْصش ٍِ ػْبصش ‪Array‬‬
‫)(‪map‬‬ ‫داىخ رغزخذً الّشبء ٍصف٘فخ عذ‪ٝ‬ذح رؾز٘‪ ٛ‬ػي‪ّ ٚ‬زبئظ اعزذػبء داىخ ٍقذٍخ ىنو‬
‫ػْصش ف‪ٕ ٜ‬زا اىَصف٘فخ‪.‬‬
‫)(‪pop‬‬ ‫داىخ رغزخذً إلصاىخ اىؼْصش األخ‪ٞ‬ش ٍِ ٍصف٘فخ ٗ‪ٝ‬ؼ‪ٞ‬ذ ٕزا اىؼْصش‪.‬‬
‫)(‪push‬‬ ‫ػْصشا ٗاؽذًا أٗ أمضش إى‪ّٖ ٚ‬ب‪ٝ‬خ اىَصف٘فخ ٗ‪ٝ‬ؼ‪ٞ‬ذ غ٘ه‬
‫ً‬ ‫داىخ رغزخذً ى‪ٞ‬ع‪ٞ‬ف‬
‫اىَصف٘فخ اىغذ‪ٝ‬ذ‪.‬‬
‫)(‪reduce‬‬ ‫داىخ رغزخذً ىزطج‪ٞ‬ق داىخ ف‪ٗ ٜ‬قذ ٗاؽذ ٍقبثو ق‪َٞ‬ز‪ ِٞ‬ىيَصف٘فخ (ٍِ اى‪ٞ‬غبس إى‪ٚ‬‬
‫اى‪ )َِٞٞ‬ىزقي‪ٞ‬يٖب إى‪ ٚ‬ق‪َٞ‬خ ٗاؽذح‪.‬‬
‫)(‪reduceRight‬‬ ‫داىخ رغزخذً ىزطج‪ٞ‬ق داىخ ف‪ٗ ٜ‬قذ ٗاؽذ ٍقبثو ق‪َٞ‬ز‪ ِٞ‬ىيَصف٘فخ (ٍِ اى‪ َِٞٞ‬إى‪ٚ‬‬
‫اى‪ٞ‬غبس) ىزقي‪ٞ‬يٖب إى‪ ٚ‬ق‪َٞ‬خ ٗاؽذح‪.‬‬
‫)(‪reverse‬‬ ‫داىخ رغزخذً ىؼنظ أٗ ىقيت رشر‪ٞ‬ت ػْبصش اىَصف٘فخ فبىؼْصش األٗه ‪ٝ‬صجؼ‬
‫األخ‪ٞ‬ش ‪ٗ ،‬اىؼْصش األخ‪ٞ‬ش ‪ٝ‬صجؼ األٗه‬
‫)(‪shift‬‬ ‫داىخ رغزخذً ىزض‪ٝ‬و اىؼْصش األٗه ٍِ ٍصف٘فخ ٗ‪ٝ‬ؼ‪ٞ‬ذ ٕزا اىؼْصش‪.‬‬
‫)(‪unshift‬‬ ‫داىخ رغزخذً ىزع‪ٞ‬ف ػْصش أٗ أمضش إى‪ٍ ٚ‬قذٍخ اىَصف٘فخ ٗ‪ٝ‬ؼ‪ٞ‬ذ غ٘ه‬
‫اىصف‪ٞ‬ف اىغذ‪ٝ‬ذ‪.‬‬
‫)(‪slice‬‬ ‫داىخ رغزخذً العزخشاط ٍقطغ ٍِ اىَصف٘فخ ٗإسعبع ٍصف٘فخ عذ‪ٝ‬ذ‪.‬‬
‫)(‪some‬‬ ‫داىخ رغزخذً إلسعبع ‪ true‬إرا مبُ ػْصش ٗاؽذ ػي‪ ٚ‬األقو ف‪ٕ ٜ‬زا اىَصف٘فخ‬
‫‪ٝ‬يج‪ٗ ٜ‬ظ‪ٞ‬فخ االخزجبس اىَقذٍخ‪.‬‬
‫)(‪toSource‬‬ ‫داىخ رغزخذً ىؼشض شفشح اىَصذس ىينبئِ ‪source code of an object‬‬
‫)(‪sort‬‬ ‫داىخ رغزخذً ىزشر‪ٞ‬ت ػْبصش اىَصف٘فخ‬
‫)(‪splice‬‬ ‫داىخ رغزخذً ىزع‪ٞ‬ف أٗ ىزض‪ٝ‬و ػْبصش ٍِ ٍصف٘فخ‪.‬‬
‫)(‪toString‬‬ ‫داىخ رغزخذً ىؼشض ‪ string‬رَضو اىَصف٘فخ ٗػْبصشٕب‪.‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل دالة ‪method‬‬


‫الدرس السادس ‪ :‬كائن التاريخ داخل لغة الجافا اسكربت‬
‫)‪(JavaScript Date Object‬‬

‫‪ :Date ‬التارٌخ هو نوع من انواع البٌانات المضمن داخل لغة ‪java script‬‬
‫‪ٌ ‬تم إنشاء ‪ object‬من ‪ Date‬عن طرٌك ) (‪new Date‬‬

‫‪ : Method of object Date ‬هنان العدٌد من الدوال ‪ methods‬الخاصة ب ‪ Date‬هذه الدوال‬


‫تسمح لن ببساطة بالوصول إلى حمول السنة والشهر والٌوم والساعة والدلٌمة والثانٌة والملً ثانٌة‬
‫‪ : Types of Date ‬هنان نوعٌن الستخدام التارٌخ‬
‫‪ ‬النوع األول ‪ local time :‬وهو التولٌت المحلى‬
‫‪ ‬النوع الثانى ‪ UTC :‬أو (‪ )universal, or GMT‬وهو التولٌت العالمى‬

‫‪ٌ ‬مكن أن تمثل ‪ JavaScript‬التارٌخ والولت حتى عام ‪275755‬‬

‫‪: Syntax ‬‬

‫‪ : Parameters ‬المعامالت التى نمررها داخل األلواس هى معامالت اختٌارٌة‬

‫‪ ‬سوف نتعرف على كل نوع من أنواع استخدام ‪parameters‬‬


‫‪ ‬النوع األول ‪ : No argument :‬بدون استخدام معامالت‬
‫ٌتم إنشاء ‪ object‬من ‪ Date‬وٌتم تعٌٌن فٌه التارٌخ ‪ Date‬والولت ‪ Time‬الحالٌٌن‬

‫‪ ‬النوع الثانً ‪ : milliseconds :‬باستخدام المٌللى ثانٌة‬


‫عندما ٌتم تمرٌر بارامٌتر رلمى ‪ number‬واحد ‪ٌ ،‬تم أخذها كتمثٌل رلمً داخلً للتارٌخ بالمللً ثانٌة‬
‫‪ ،‬كما ٌتم إرجاعها بواسطة أسلوب )(‪ ، getTime‬على سبٌل المثال ‪ ،‬عندما نمرر المٌمة ‪ 5000‬إلى‬
‫‪ Date‬فسوف ٌتم تمثٌل المٌمة وإنشاء تارٌخ بمٌمة خمس ثوان بعد منتصف اللٌل فً ‪1/1/70‬‬
‫‪ ‬النوع الثالث ‪ : datestring :‬باستخدام سلسة نصٌة من تارٌخ‬
‫عندما ٌتم تمرٌر بارامٌتر نصً ‪ string‬واحد ‪ ،‬فسوف ٌتم تمثٌل هذا ‪ string‬بالتنسٌك الممبولة بواسطة‬
‫الدالة )(‪Date.parse‬‬

‫‪ ‬النوع الرابع ‪ : 7 arguments :‬باستخدام ادخال ‪ 7‬بارامٌترات‬


‫‪ : year ‬وهى المٌمة الصحٌحة التً تمثل السنة وٌجب علٌن دائ ًما تحدٌد السنة بالكامل أى استخدم‬
‫‪ 1998‬بدالً من ‪ 98‬لكى تتجنب مشكلة ‪Y2K‬‬
‫‪ : month ‬وهى المٌمة الصحٌحة التً تمثل الشهر ‪ ،‬وتبدأ الشهور من ‪ 0‬التى تمثل الشهر ٌناٌر‬
‫إلى ‪ 11‬التى تمثل الشهر دٌسمبر‬
‫‪ : date ‬وهى لٌمة عدد صحٌح تمثل ٌوم الشهر‬
‫‪ : hour ‬وهى لٌمة صحٌحة تمثل ساعة الٌوم (الممٌاس ‪ 24‬ساعة)‬
‫‪ : minute ‬وهى لٌمة عدد صحٌح تمثل الدلائك (الجزء الدلٌك) (الممٌاس ‪ 60‬دلٌمة)‬
‫‪ : second ‬وهى لٌمة عدد صحٌح تمثل الثوانى ( الجزء الثانً من الولت) (الممٌاس ‪ 60‬ثانٌة)‬
‫‪ : millisecond ‬وهى لٌمة عدد صحٌح تمثل المللً ثانٌة (الممٌاس ‪ 1000‬مٌللى ثانٌة)‬

‫‪ : Date Properties‬الخصائص الخاصة بالكائن ‪Date‬‬


‫‪Property‬‬ ‫‪Description‬‬
‫‪prototype‬‬ ‫خبص‪ٞ‬خ صبثزخ ىينبئْبد رغزخذً ىزؼ‪ ِٞٞ‬خصبئص ٗدٗاه عذ‪ٝ‬ذح ىينبئْبد ف‪ٜ‬‬
‫‪ document‬اىؾبى‪ٞ‬خ‬
‫‪constructor‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ اىذاىخ اىز‪ ٜ‬أدد إى‪ ٚ‬إّشبء ٕزا اىنبئِ اىق‪َٞ‬خ االفزشاظ‪ٞ‬خ‬
‫ْٕب ٕ‪Date object ٚ‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل خاصٌة ‪property‬‬

‫‪ : Date Static Methods‬دوال ثابتة خاصة بالكائن ‪Date‬‬


‫هنان دالتٌن لتحوٌل ‪ Date‬إى‪ ، string ٚ‬باستخدام االتفالٌة الزمنٌة العالمٌة‬
‫‪method‬‬ ‫‪Description‬‬
‫) (‪Date.parse‬‬ ‫داىخ رقً٘ ثبسعبع ػذد اىَ‪ٞ‬ي‪ ٜ‬صبّ‪ٞ‬خ ىزىل اىزبس‪ٝ‬خ ٍْز ربس‪ٝ‬خ غجقب ً ىيزبس‪ٝ‬خ اىَؾذد‬
‫) (‪Date.UTC‬‬ ‫داىخ رقً٘ ثبسعبع ػذد اىَ‪ٞ‬ي‪ ٜ‬صبّ‪ٞ‬خ ىزىل اىزبس‪ٝ‬خ ٗاى٘قذ غجقب ً ىيز٘ق‪ٞ‬ذ اىؼبىَ‪ٚ‬‬
‫‪ٌ ‬تم حساب عدد المٌللى ثانٌة بداٌة من تارٌخ ‪January 1, 1970‬‬

‫‪ ‬سوف نموم بذكر أمثلة بسٌطة على كل دالة ‪method‬‬


‫‪ : Date methods‬الدوال الخاصة بالكائن ‪Date‬‬
‫‪Property‬‬ ‫‪Description‬‬
‫)(‪Date‬‬ ‫داىخ رقً٘ ثبسعبع اىزبس‪ٝ‬خ ٗاى٘قذ ىي‪ً٘ٞ‬‬
‫)(‪getDate‬‬ ‫داىخ رقً٘ ثبسعبع ‪ ً٘ٝ‬اىشٖش ىيزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىَؾي‪ٜ‬‬
‫)(‪getDay‬‬ ‫داىخ رقً٘ ثبسعبع ‪ ً٘ٝ‬األعج٘ع ىيزبس‪ٝ‬خ اىَؾذد ٗفقًب ىيز٘ق‪ٞ‬ذ اىَؾي‪ٜ‬‬
‫)(‪getFullYear‬‬ ‫داىخ رقً٘ ثبسعبع عْخ اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىيز٘ق‪ٞ‬ذ اىَؾي‪ٜ‬‬
‫)(‪getHours‬‬ ‫داىخ رقً٘ ثبسعبع اىغبػخ ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىيز٘ق‪ٞ‬ذ اىَؾي‪ٜ‬‬
‫)(‪getMilliseconds‬‬ ‫داىخ رقً٘ ثبسعبع اىَيي‪ ٜ‬صبّ‪ٞ‬خ ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪getMinutes‬‬ ‫داىخ رقً٘ ثبسعبع اىذقبئق ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪getMonth‬‬ ‫داىخ رقً٘ ثبسعبع اىشٖش ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىيز٘ق‪ٞ‬ذ اىَؾي‪.ٜ‬‬
‫)(‪getSeconds‬‬ ‫داىخ رقً٘ ثبسعبع اىض٘اّ‪ ٜ‬ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪getTime‬‬ ‫داىخ رقً٘ ثبسعبع اىق‪َٞ‬خ اىؼذد‪ٝ‬خ ىيزبس‪ٝ‬خ اىَؾذد ٍضو ػذد اىَيي‪ ٜ‬صبّ‪ٞ‬خ ٍْز ‪1‬‬
‫مبُّ٘ اىضبّ‪ 11:11:11 ، 1791 ٜ‬ثبىز٘ق‪ٞ‬ذ اىؼبىَ‪ ٜ‬اىَْغق‪.‬‬
‫)(‪getTimezoneOffset‬‬ ‫داىخ رقً٘ ثبسعبع إصاؽخ اىَْطقخ اىضٍْ‪ٞ‬خ ثبىذقبئق ىإلػذاداد اىَؾي‪ٞ‬خ اىؾبى‪ٞ‬خ‪.‬‬
‫)(‪getUTCDate‬‬ ‫داىخ رقً٘ ثبسعبع ‪( ً٘ٝ‬ربس‪ٝ‬خ) اىشٖش ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getUTCDay‬‬ ‫داىخ رقً٘ ثبسعبع ‪ ً٘ٝ‬األعج٘ع ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪ٜ‬‬
‫)(‪getUTCFullYear‬‬ ‫داىخ رقً٘ ثبسعبع اىغْخ ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getUTCHours‬‬ ‫داىخ رقً٘ ثبسعبع اىغبػبد ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getUTCMilliseconds‬‬ ‫داىخ رقً٘ ثبسعبع اىَيي‪ ٜ‬صبّ‪ٞ‬خ ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getUTCMinutes‬‬ ‫داىخ رقً٘ ثبسعبع اىذقبئق ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getUTCMonth‬‬ ‫داىخ رقً٘ ثبسعبع اىشٖش ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getUTCSeconds‬‬ ‫داىخ رقً٘ ثبسعبع اىض٘اّ‪ ٜ‬ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪getYear‬‬ ‫داىخ رقً٘ ثبسعبع اىغْخ ف‪ ٜ‬اىزبس‪ٝ‬خ اىَؾذد ٗفقًب ىيز٘ق‪ٞ‬ذ اىَؾي‪ .ٜ‬اعزخذً‬
‫‪ getFullYear‬ثذالً ٍِ رىل ألّٔ رٌ إ‪ٝ‬قبفٖب (‪)Deprecated‬‬
‫)(‪setDate‬‬ ‫داىخ رقً٘ ثزؼ‪ ً٘ٝ ِٞٞ‬اىشٖش ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪setFullYear‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىغْخ اىنبٍيخ ىيزبس‪ٝ‬خ اىَؾذد ٗفقًب ىي٘قذ اىَؾي‪ٜ‬‬
‫)(‪setHours‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬عبػبد ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪ٜ‬‬
‫)(‪setMilliseconds‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىَيي‪ ٜ‬صبّ‪ٞ‬خ ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪ٜ‬‬
‫)(‪setMinutes‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىذقبئق ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪setMonth‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىشٖش ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪setSeconds‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىض٘اّ‪ ٜ‬ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪.ٜ‬‬
‫)(‪setTime‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬مبئِ اىزبس‪ٝ‬خ إى‪ ٚ‬اى٘قذ اىز‪َٝ ٛ‬ضئ ػذد ٍِ اىَيي‪ ٜ‬صبّ‪ٞ‬خ ٍْز‬
‫‪ْٝ 1‬ب‪ٝ‬ش ‪UTC 11:11:11 ، 1791‬‬
‫)(‪setUTCDate‬‬ ‫داىخ رقً٘ ثزؼ‪ ً٘ٝ ِٞٞ‬اىشٖش ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪ٜ‬‬
‫)(‪setUTCFullYear‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىغْخ اىنبٍيخ ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪ٜ‬‬
‫)(‪setUTCHours‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىغبػخ ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪setUTCMilliseconds‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىَيي‪ ٜ‬صبّ‪ٞ‬خ ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪ٜ‬‬
‫)(‪setUTCMinutes‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىذقبئق ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪.ٜ‬‬
‫)(‪setUTCMonth‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىشٖش ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪ٜ‬‬
‫)(‪setUTCSeconds‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىض٘اّ‪ ٜ‬ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىؼبىَ‪ٜ‬‬
‫)(‪setYear‬‬ ‫داىخ رقً٘ ثزؼ‪ ِٞٞ‬اىغْخ ىزبس‪ٝ‬خ ٍؾذد ٗفقًب ىي٘قذ اىَؾي‪ ٜ‬اعزخذً‬
‫‪ setFullYear‬ثذالً ٍِ رىل ألّٔ رٌ إ‪ٝ‬قبفٖب (‪)Deprecated‬‬
‫)(‪toDateString‬‬ ‫داىخ رقً٘ ثبسعبع عضء "اىزبس‪ٝ‬خ" مغيغيخ ‪َٝ‬نِ قشاءرٖب ث٘اعطخ اإلّغبُ‬
‫)(‪toGMTString‬‬ ‫داىخ رقً٘ ثزؾ٘‪ٝ‬و ربس‪ٝ‬خ إى‪ ، String ٚ‬ثبعزخذاً اصطالؽبد إّزشّذ ‪GMT‬‬
‫اعزخذً ‪ toUTCString‬ثذالً ٍِ رىل ألّٔ رٌ إ‪ٝ‬قبفٖب (‪)Deprecated‬‬
‫)(‪toLocaleDateString‬‬ ‫داىخ رقً٘ ثبسعبع عضء "ربس‪ٝ‬خ" ٍِ اىزبس‪ٝ‬خ مغيغيخ ‪ ،‬ثبعزخذاً اصطالؽبد‬
‫اىيغخ اىؾبى‪ٞ‬خ‬
‫)(‪toLocaleFormat‬‬ ‫داىخ رقً٘ ثزؾ٘‪ٝ‬و ‪ Date‬إى‪ ، string ٚ‬ثبعزخذاً عيغيخ رْغ‪ٞ‬ق‬
‫)(‪toLocaleString‬‬ ‫داىخ رقً٘ ثزؾ٘‪ٝ‬و ‪ Date‬إى‪ ، string ٚ‬ثبعزخذاً اصطالؽبد اىيغخ اىؾبى‪ٞ‬خ‬
‫)(‪toLocaleTimeString‬‬ ‫داىخ رقً٘ ثبسعبع عضء "اى٘قذ" ٍِ اىزبس‪ٝ‬خ مغيغيخ ‪ ،‬ثبعزخذاً اصطالؽبد‬
‫اىيغخ اىؾبى‪ٞ‬خ‬
‫)(‪toSource‬‬ ‫داىخ رقً٘ ثبسعبع عيغيخ رَضو اىَصذس ىنبئِ ربس‪ٝ‬خ ٍنبفئ؛ ‪َٝ‬نْل اعزخذاً‬
‫ٕزٓ اىق‪َٞ‬خ إلّشبء مبئِ عذ‪ٝ‬ذ‬
‫)(‪toString‬‬ ‫داىخ رقً٘ ثبسعبع ‪ string‬ىنبئِ اىزبس‪ٝ‬خ اىَؾذد‬
‫)(‪toTimeString‬‬ ‫داىخ رقً٘ ثبسعبع عضء "اى٘قذ" ٍِ اىزبس‪ٝ‬خ مغيغيخ ‪َٝ‬نِ قشاءرٖب ث٘اعطخ‬
‫اإلّغبُ‬
‫)(‪toUTCString‬‬ ‫داىخ رقً٘ ثزؾ٘‪ٝ‬و ‪ Date‬إى‪ ، string ٚ‬ثبعزخذاً االرفبق‪ٞ‬خ اىضٍْ‪ٞ‬خ اىؼبىَ‪ٞ‬خ‬
‫)(‪valueOf‬‬ ‫داىخ رقً٘ ثبسعبع اىق‪َٞ‬خ األٗى‪ٞ‬خ ىنبئِ اىزبس‪ٝ‬خ ‪Date object‬‬
‫الدرس السابع ‪ :‬كائن المعادالت الرياضية داخل لغة الجافا اسكربت‬
‫)‪(JavaScript Math Object‬‬

‫‪ٌ ‬وفر لن ‪ Math Object‬العدٌد من ‪ properties‬و ‪ methods‬الخاصة بالثوابت والمعادالت‬


‫الرٌاضٌة‪.‬‬
‫‪ Math Object ‬لٌست ‪( constructor‬على عكس ‪ objects‬اآلخرى)‪.‬‬
‫‪ ‬جمٌع ‪ properties‬و ‪ methods‬الخاصة بكائن ‪ Math‬هى لٌم ثابتة ‪ constant‬وٌمكن‬
‫استدعاؤها باستخدام الكائن ‪ Math‬دون أن ننشأها‪.‬‬
‫‪ ‬على سبٌل المثال عندما نرٌد الحصول على لٌمة نصف المطر فإننا نشٌر إلٌها بالرمز ‪ pi‬وٌمكن‬
‫الحصول علٌها عن طرٌك ‪ Math.PI‬وٌمكن الحصول على لٌمة )‪ sin(30‬بنفس الطرٌمة‬

‫‪ : Math Properties‬الخصائص الخاصة بالكائن ‪Math‬‬


‫‪Property‬‬ ‫‪Description‬‬
‫‪E‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد صبثذ أٗ‪ٝ‬يش ‪ٗ Euler's constant‬قبػذح اىي٘غبس‪ٝ‬زَبد‬
‫اىطج‪ٞ‬ؼ‪ٞ‬خ ٗق‪َٞ‬زٔ رغبٗ‪2.718 ٙ‬‬
‫‪LN2‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد اىي٘غبس‪ٝ‬ضٌ اىطج‪ٞ‬ؼ‪ ، 2 ٍِ ٜ‬ؽ٘اى‪0.693 ٜ‬‬
‫‪LN10‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد اىي٘غبس‪ٝ‬ضٌ اىطج‪ٞ‬ؼ‪ ، 10 ٍِ ٜ‬ؽ٘اى‪2.302 ٜ‬‬
‫‪LOG2E‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد ى٘غبس‪ٝ‬زٌ اىقبػذح ‪ ، E ٍِ 2‬ؽ٘اى‪1.442 ٜ‬‬
‫‪LOG10E‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد ى٘غبس‪ٝ‬زٌ ىيقبػذح ‪ ، E ٍِ 10‬ؽ٘اى‪0.434 ٜ‬‬
‫‪PI‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد ّصف اىقطش ( أ‪ّ ٙ‬غجخ ٍؾ‪ٞ‬ػ اىذائشح إى‪ ٚ‬قطشٕب ) ؽ٘اى‪ٜ‬‬
‫‪3.14159‬‬
‫‪SQRT1_2‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد اىغزس اىزشث‪ٞ‬ؼ‪ ٜ‬ىيْصف ‪( 1/2‬ػي‪ّ ٚ‬ؾ٘ ٍنبفئ ‪ 1 ،‬ػي‪ ٚ‬اىغزس‬
‫اىزشث‪ٞ‬ؼ‪ ٜ‬ىـ ‪ ) 2‬رقش‪ٝ‬جًب ‪0.707‬‬
‫‪SQRT2‬‬ ‫خبص‪ٞ‬خ رغزخذً إل‪ٝ‬غبد اىغزس اىزشث‪ٞ‬ؼ‪ ٜ‬ه ‪ ، 2‬ؽ٘اى‪1.414 ٜ‬‬
‫‪ : Math methods‬الدوال الخاصة بالكائن ‪Math‬‬
‫‪method‬‬ ‫‪Description‬‬
‫)(‪sin‬‬ ‫داىخ رقً٘ ثبسعبع ع‪ٞ‬ت اىضاٗ‪ٝ‬خ ‪sine of a number‬‬
‫)(‪cos‬‬ ‫داىخ رقً٘ ثبسعبع ع‪ٞ‬ت رَبً اىضاٗ‪ٝ‬خ‬
‫)(‪tan‬‬ ‫داىخ رقً٘ ثبسعبع ظو اىضاٗ‪ٝ‬خ أ‪ٍٞ ٙ‬و اىََبط ‪tangent of a number‬‬
‫)(‪asin‬‬ ‫داىخ رقً٘ ثبسعبع ع‪ٞ‬ت اىضاٗ‪ٝ‬خ اىؼنغ‪ٜ‬‬
‫)(‪acos‬‬ ‫داىخ رقً٘ ثبسعبع ع‪ٞ‬ت رَبً اىضٗا‪ٝ‬خ اىؼنغ‪ٜ‬‬
‫)(‪atan‬‬ ‫داىخ رقً٘ ثبسعبع ظو اىضاٗ‪ٝ‬خ اىؼنغ‪ٜ‬‬
‫)‪atan2(x,y‬‬ ‫داىخ رقً٘ ثبسعبع اىؼنغ‪ ٜ‬ػِ غش‪ٝ‬ق قغَخ ‪x/y‬‬
‫)(‪ceil‬‬ ‫داىخ رقً٘ ثبسعبع أصغش ػذد صؾ‪ٞ‬ؼ أمجش ٍِ أٗ ‪ٝ‬غبٗ‪ ٛ‬اىشقٌ (عقف اىشقٌ)‬
‫)(‪floor‬‬ ‫داىخ رقً٘ ثبسعبع أمجش ػذد صؾ‪ٞ‬ؼ أقو ٍِ أٗ ‪ٝ‬غبٗ‪ ٛ‬اىشقٌ‪( .‬أسظ‪ٞ‬خ اىشقٌ)‬
‫)(‪abs‬‬ ‫داىخ رقً٘ ثبسعبع اىق‪َٞ‬خ اىَطيقخ ىيشقٌ (اىق‪َٞ‬خ اىَ٘عجخ)‬
‫)(‪exp‬‬ ‫داىخ رقً٘ ثبسعبع ق‪َٞ‬خ ‪ EN‬ؽ‪ٞ‬ش ‪ ٕٚ E‬صبثذ اٗ‪ٝ‬يش ٗ ‪ ٕ٘ N‬اىَؼبٍو‬
‫)(‪log‬‬ ‫داىخ رقً٘ ثبسعبع اىي٘غبس‪ٝ‬ضٌ اىطج‪ٞ‬ؼ‪ ٜ‬ىيشقٌ (‪ )base E‬األعبط ‪E‬‬
‫)(‪max‬‬ ‫داىخ رقً٘ ثبسعبع أمجش سقٌ ىَغَ٘ػخ ٍِ اىق‪ٌٞ‬‬
‫)(‪min‬‬ ‫داىخ رقً٘ ثبسعبع أصغش سقٌ ػذد‪ٝ‬خ ىَغَ٘ػخ ٍِ اىق‪ٌٞ‬‬
‫)(‪pow‬‬ ‫داىخ رقً٘ ثبسعبع ق‪َٞ‬خ سقٌ رٗ أط ‪Returns base to the exponent power‬‬
‫)(‪sqrt‬‬ ‫داىخ رقً٘ ثبسعبع اىغزس اىزشث‪ٞ‬ؼ‪ ٜ‬ىيشقٌ ‪square root‬‬
‫)(‪round‬‬ ‫داىخ رقً٘ ثبىزقش‪ٝ‬ت ألقشة ػذد صؾ‪ٞ‬ؼ ‪rounded to the nearest integer‬‬
‫)(‪random‬‬ ‫داىخ رقً٘ ثبسعبع سقٌ ػش٘ائ‪ٍ pseudo-random number ٜ‬ب ث‪)0 – 1 ( ِٞ‬‬
‫)(‪toSource‬‬ ‫داىخ رقً٘ ثبسعبع ‪ source‬ىينبئِ مق‪َٞ‬خ ّص‪ٞ‬خ ‪string‬‬
‫الدرس الثامن ‪ :‬كائن التعبيرات المنتظمة داخل لغة الجافا اسكربت‬
‫)‪(JavaScript RegExp Object‬‬

‫‪ : Regular Expressions ‬التعبٌرات المنطمٌة أو التعبٌرات المنتظمة أو التعبٌرات العادٌة‬


‫‪ Regular Expressions ‬هى عبارة عن ‪ objects‬التى تصف نمط للحروف أو شكل للحروف‬
‫‪pattern of characters‬‬
‫‪ ‬تحتوى لغة الجافا على ‪ class‬مشهور خاص ب ‪ٌ Regular Expressions‬سمى ‪RegExp‬‬
‫‪ٌ ‬حدد كل من ‪ String‬و ‪ RegExp‬دوال ‪ methods‬التً تستخدم ‪Regular Expressions‬‬
‫لتنفٌذ وظائف لوٌة على النصوص ‪ texts‬مثل مطابمة األنماط ‪ pattern-matching‬والبحث‬
‫‪ search‬واالستبدال ‪replace‬‬
‫‪: Regular Expressions ‬هً أنماط تُستخدم لمطابمة مجموعة من األحرف فً السالسل النصٌة‬
‫وتستخدم هذه األنماط مع دوال ‪ exec‬و ‪ test‬الخاصة بالكائن ‪ RegExp‬وأٌضا ً تستخدم هذه‬
‫األنماط مع ‪ ،match‬و ‪ ،replace‬و‪ search‬و ‪ split‬للكائن ‪String‬‬

‫‪ٌ : Syntax ‬مكن إنشاء تعبٌرات منطمٌة ‪ Regular Expressions‬بطرلتٌن مختلفتٌن‬


‫‪ ‬الطريقة األولى ‪ :‬باستخدام التعبٌر النمطى الحرفى ‪literal Regular Expressions‬‬

‫‪ ‬الطريقة الثانية ‪ :‬باستخدام دالة البناء ‪RegExp constructor‬‬

‫‪ : pattern ‬النمط‬
‫هو عبارة عن ‪ string‬بٌحدد ‪ pattern‬للتعبٌر المنطمى ‪regular expression‬‬
‫‪ : attributes ‬الخصائص‬
‫هو عبارة عن ‪ string‬اختٌارى ٌحتوى على ‪ 3‬خصائص وهى ‪:‬‬
‫‪ global matches: "g" ‬التً تحدد مطابمات عالمٌة‬
‫‪ case-insensitive matches: "i" ‬التً تحدد مطابمات غٌر حساسة لحالة األحرف‬
‫‪ multiline matches : "m" ‬التً تحدد مطابمات مجموعات متعددة‬
‫‪ ‬سوف نتعرف على بعض الرموز التى لها معنى داخل لغات البرمجة‬
‫أوال ا ‪ : Brackets :‬األلواس المعكوفة ( [ ] )‬
‫‪ ‬لها معنى خاص عند استخدامها فً سٌاق التعبٌرات العادٌة حٌث ٌتم استخدامها للعثور على‬
‫مجموعة من الحروف ‪range of characters‬‬
‫‪ ‬الحظ الجدول التالى للتعرف على معنى كل ‪Brackets‬‬
‫‪Expression‬‬ ‫‪Description‬‬
‫]‪[...‬‬ ‫أ‪ ٛ‬ؽشف ٗاؽذ ث‪ ِٞ‬ق٘ع‪ِٞ‬‬
‫]‪[^...‬‬ ‫أ‪ ٛ‬ؽشف ٗاؽذ ى‪ٞ‬ظ ث‪ ِٞ‬األق٘اط‬
‫]‪[0-9‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬سقٌ ػشش‪ 0 ٍِ ٛ‬إى‪9 ٚ‬‬
‫]‪[a-z‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬ؽشف ٍِ أؽشف صغ‪ٞ‬شح ‪ a‬إى‪ ٚ‬األؽشف صغ‪ٞ‬شح ‪z‬‬
‫]‪[A-Z‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬ؽشف ٍِ األؽشف اىنج‪ٞ‬شح ‪ A‬إى‪ ٚ‬األؽشف اىنج‪ٞ‬شح ‪Z‬‬
‫]‪[a-Z‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬ؽشف ٍِ أؽشف صغ‪ٞ‬ش ‪ a‬إى‪ ٚ‬األؽشف اىنج‪ٞ‬شح ‪Z‬‬

‫ضا استخدام النطاق [ ‪ ]0 – 3‬لمطابمة أي رلم عشري ٌتراوح من ‪ 0‬إلى ‪، 3‬‬


‫‪ٌ ‬مكنن أٌ ً‬
‫‪ ‬أو استخدام النطاق [ ‪ ]b – v‬لمطابمة أي حرف صغٌر ٌتراوح من ‪ b‬إلى ‪.v‬‬

‫ثانيا ا ‪ُ : Quantifiers :‬محدد الكمٌات ( [ ] )‬


‫‪ ‬لها معنى خاص عند استخدامها فً سٌاق التعبٌرات العادٌة حٌث ٌتم استخدامها لتحدٌد الكمٌات أو‬
‫عدد األحرف او الخانات التى نستخدمها فى ‪ Regular Expression‬وتستخدم أٌضا ً للتحمك من‬
‫إٌجاد حروف معٌنة ولها استخدامات كتٌر سوف نتعرض لها فٌما بعد‬
‫‪ ‬الحظ الجدول التالى للتعرف على معنى كل ‪Quantifiers‬‬
‫‪Expression‬‬ ‫‪Description‬‬
‫‪p+‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬عيغيخ رؾز٘‪ ٛ‬ػي‪ٗ ٚ‬اؽذ أٗ أمضش ٍِ ‪p‬‬
‫*‪p‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬عيغيخ رؾز٘‪ ٛ‬ػي‪ ٚ‬صفش أٗ أمضش ‪p‬‬
‫?‪p‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬عيغيخ رؾز٘‪ ٛ‬ػي‪ ٚ‬أمضش ٍِ ‪ٗ p‬اؽذح‬
‫}‪p{N‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬عيغيخ رؾز٘‪ ٛ‬ػي‪ ٚ‬اىؼذد ‪ N‬داخو عيغيخ ٍِ ‪P‬‬
‫}‪p{x,y‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ ٛ‬عيغيخ رؾز٘‪ ٛ‬ػي‪ x ٚ‬أٗ ‪p ٍِ y‬‬
‫} ‪p{x,‬‬ ‫رزطبثق ٍغ أ‪ ٛ‬عيغيخ رؾز٘‪ ٛ‬ػي‪ ٚ‬عيغيخ ٍِ ‪ x‬ػي‪ ٚ‬األقو‬
‫‪p$‬‬ ‫رزطبثق ٍغ أ‪ ٛ‬عيغيخ ٍغ ‪ p‬ف‪ّٖ ٜ‬ب‪ٝ‬زٖب‬
‫‪^p‬‬ ‫رزطبثق ٍغ أ‪ ٛ‬عيغيخ ٍغ ‪ p‬ف‪ ٜ‬ثذا‪ٝ‬زٖب‬
‫ صفات الحروف‬:Literal characters : ‫ثالثا‬
‫ لتنفٌذ بعض‬regular expression ‫ مع‬Alphanumeric ‫ ٌتم استخدام الحروف األبجدٌة نفسها‬
escape character ‫األوامر مثل‬
liter character ‫ الحظ الجدول التالى للتعرف على معنى كل‬
Expression Unicode Description
\0 \u0000 NUL character ‫غزخذً ىؼَو ؽشف فبسؽ‬ٝ
\t \u0009 )‫ ٍغبفبد‬6 ( tab ‫غزخذً ىؼَو‬ٝ
\n \u000A newline ‫ذ‬ٝ‫غزخذً ىؼَو عطش عذ‬ٝ
\v \u000B Vertical tab ‫غزخذً ىؼَو‬ٝ
\f \u000C Form feed ‫خ‬ٝ‫غزخذً ىؼَو َّ٘صط رغز‬ٝ
\r \u000D Carriage return ‫خ اسعبع‬ٞ‫غزخذً ىؼَو ػَي‬ٝ
\xnn \n ٙٗ‫\ رغب‬x0A ‫ ٍضو‬Latin character
\uxxxx \t ٙٗ‫\ رغب‬u0009 ‫ ٍضو‬Unicode character
\cX \n ٙٗ‫\ رغب‬cJ ‫ ٍضو‬control character

‫ الحروف الخاصة‬:Metacharacters : ‫رابعا ا‬


) \ ( ً‫ ٌسبمه خط مائل عكس‬alphabetical ‫ هو ببساطة حرف‬Metacharacters 
Metacharacters ‫ الحظ الجدول التالى للتعرف على معنى كل‬
Expression Description
. ‫ؼجشػِ ؽشف ٗاؽذ‬ٝ a single character
\s ‫ؼجشػِ ٍغبفخ‬ٝ whitespace character (space, tab, newline)
\S ‫ؼجشػِ ػذً ٗع٘د ٍغبفخ‬ٝ non-whitespace character
\d 9 ٚ‫ إى‬0 ٍِ ‫ؼجشػِ خبّخ‬ٝ a digit (0-9)
\D 9 ٚ‫ إى‬0 ٍِ ً‫ أسقب‬ٚ‫ ػي‬ٙ٘‫ؼجشػِ خبّخ ال رؾز‬ٝ a non-digit
\w ( a-z , A-Z , 0-9, _ ) ‫ؼجشػِ ميَخ ٍضو‬ٝ a word character
\W ( a-z , A-Z , 0-9, _ ) ‫ش‬ٞ‫ سٍض غ‬ٙ‫ؼجشػِ أ‬ٝ non-word character
[\b] ‫خ‬ٞ‫خ ؽشف‬ٞ‫ؼجش ػِ ٍغبؽخ خيف‬ٝ a literal backspace (special case)
[aeiou] ‫ اىَغَ٘ػخ اىَؾذدح‬ٜ‫طبثق ؽشف ٗاؽذ ف‬ٝ
[^aeiou] ‫طبثق ؽشف ٗاؽذ خبسط اىَغَ٘ػخ اىَؾذدح‬ٝ
(foo|bar|baz) ‫ ٍِ اىجذائو اىَؾذدح‬ٛ‫رطبثق أ‬
‫خامسا ا ‪ :Modifiers :‬الصفات التعرٌفٌة أو ال ُمعدالت أو ال ُمحوالت‬
‫تتوفر العدٌد من أدوات التعدٌل ‪ Modifiers‬التً ٌمكنها تبسٌط طرٌمة عملن مع ‪ ، regexps‬مثل‬
‫حساسٌة الحالة ‪ ،‬والبحث فً خطوط متعددة ‪ ،‬إلخ‪.‬‬
‫‪ ‬الحظ الجدول التالى للتعرف على معنى كل ‪Metacharacters‬‬
‫‪Expression‬‬ ‫‪Description‬‬
‫‪i‬‬ ‫‪ case-insensitive matching‬إعشاء ػَي‪ٞ‬خ رطبثق غ‪ٞ‬ش ؽغبعخ ثَؼْ‪ٚ‬‬
‫أّ ال ‪ٖٝ‬زٌ ثبىؾشف ع٘اء مبُ ‪ lower‬اٗ ‪upper‬‬
‫‪m‬‬ ‫‪ٝ multiple lines‬ؾذد ٕو اىغيغيخ رؾز٘‪ ٛ‬ػي‪newline characters ٚ‬‬
‫أٗ أؽشف إسعبع ‪ ، carriage return characters‬فإُ اىَؼبٍي‪$ ٗ ^ ِٞ‬‬
‫ع٘ف رزطبثقبُ ٍغ ؽذٗد اىغطش اىغذ‪ٝ‬ذ ‪ ،newline boundary‬ثذالً ٍِ‬
‫ؽذٗد اىغيغيخ ‪string boundary‬‬
‫‪g‬‬ ‫‪ global matches‬اىز‪ ٜ‬رؾذد ٍطبثقبد ػبىَ‪ٞ‬خ ٕٗ‪ ٜ‬اىؼض٘س ػي‪ ٚ‬عَ‪ٞ‬غ‬
‫اىزطبثقبد ثذالً ٍِ اىز٘قف ثؼذ اىؼض٘س ػي‪ ٚ‬اٗه رطبثق فقػ‬

‫‪ :Examples‬بعض األمثلة على استخدام ‪regular expressions‬‬


‫‪ ‬الحظ الجدول التالى للتعرف على معنى كل ‪Examples‬‬
‫‪Expression‬‬ ‫‪Description‬‬
‫]‪[^a-zA-Z‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ string ٛ‬ال رؾز٘‪ ٛ‬ػي‪ ٚ‬أ‪ ٍِ ٛ‬األؽشف اىز‪ ٜ‬رزشاٗػ ٍِ ‪ a‬إى‪ٗ z ٚ‬‬
‫‪ A‬إى‪.Z ٚ‬‬
‫‪p.p‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ string ٛ‬رؾز٘‪ ٛ‬ػي‪ ٚ‬ؽشف ‪ p‬صٌ ٍزج٘ػخ ثأ‪ ٛ‬ؽشف آخش غ‪ٞ‬ش ‪ p‬صٌ‬
‫ٍزج٘ػخ ثـؾشف ‪ p‬آخش‪(.‬ث‪ٞ‬زغبٕو اىؾشف األٗعػ)‬
‫‪^.{2}$‬‬ ‫‪ٝ‬طبثق أ‪ string ٛ‬رؾز٘‪ ٛ‬ػي‪ ٚ‬ؽشف‪ٍ ِٞ‬زطبثق‪ ِٞ‬ثبىعجػ‬
‫>‪<b>(.*)</b‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ٍ string ٛ‬ؾبغخ داخو <‪>b < >/b‬‬
‫*)‪p(hp‬‬ ‫‪ٝ‬زطبثق ٍغ أ‪ string ٛ‬رؾز٘‪ ٛ‬ػي‪ٍ p ٚ‬زج٘ػب ً ثـ صفش أٗ أمضش ٍِ ٍض‪ٞ‬الد ‪hp‬‬
‫اىزغيغو‪.‬‬
‫‪ : RegExp Properties‬الخصائص الخاصة بالكائن ‪RegExp‬‬
‫‪Property‬‬ ‫‪Description‬‬
‫‪constructor‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزشعغ اىذاىخ اىز‪ ٜ‬أدد إى‪ ٚ‬إّشبء اىَْ٘رط األٗى‪ ٜ‬ىينبئِ اىق‪َٞ‬خ‬
‫االفزشاظ‪ٞ‬خ ٕ‪RegExp ٚ‬‬
‫‪global‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزؾذد ٍب إرا رٌ ظجػ ‪"g" modifier‬‬
‫‪ignoreCase‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزؾذد ٍب إرا رٌ ظجػ ‪"i" modifier‬‬
‫‪multiline‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزؾذد ٍب إرا رٌ ظجػ ‪"m" modifier‬‬
‫‪lastIndex‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزؾذد ‪ index‬اىز‪ٝ ٛ‬جذأ ػْذٓ اىق‪َٞ‬خ اىَزطبثقخ اىزبى‪ٞ‬خ‬
‫‪source‬‬ ‫خبص‪ٞ‬خ رغزخذً ىزؾذد ّص اىَْػ ‪text of the pattern‬‬

‫‪ : RegExp methods‬الدوال الخاصة بالكائن ‪RegExp‬‬


‫‪methods‬‬ ‫‪Description‬‬
‫)(‪exec‬‬ ‫داىخ رقً٘ ثؼَي‪ٞ‬خ ثؾش ػِ رطبثق ف‪ٍ ٜ‬ؼبٍالد اىغيغيخ ‪string parameter‬‬
‫)(‪test‬‬ ‫داىخ رقً٘ ثؼَي‪ٞ‬خ اخزجبس رطبثق ف‪ٍ ٜ‬ؼبٍالد اىغيغيخ ‪string parameter‬‬
‫)(‪toSource‬‬ ‫داىخ رقً٘ ثإسعبع ‪ object literal‬ؽ‪ٞ‬ش رَضو اىنبئِ اىَؾذد ؛ ‪َٝ‬نْل اعزخذاً ٕزٓ اىق‪َٞ‬خ‬
‫إلّشبء مبئِ عذ‪ٝ‬ذ‬
‫)(‪toString‬‬ ‫داىخ رقً٘ ثإسعبع ‪َٝ string‬ضو اىنبئِ اىَؾذد‪.‬‬
‫الخاتمة‬

‫ف‪ ٜ‬اىخزبً أؽججذ أُ أّ٘ٓ ػي‪ ٚ‬ثؼط اىزْج‪ٖٞ‬بد اىََٖخ فٖزا اىنزبة ٕ٘ ّبرظ عٖذ ال ‪ٝ‬ؼئَ إال هللا ٍِٗ اإلّصبف أُ ‪ٝ‬ؼيمٌ‬
‫مو ٍِ ‪ٝ‬قشأ ٕزا اىنزبة أّٔ ى‪ٞ‬ظ ٍغٖ٘د‪ ٙ‬فؾغت ٗإَّب ٕ٘ ٍغٖ٘د ّقمو ٗرشعَمخ ٗرصمؾ‪ٞ‬ؼ ٍفمبٕ‪ٗ ٌٞ‬ثؾمش ٍمِ اىَ٘اقمغ‬
‫اىَشمممٖ٘سح فممم‪ ٜ‬ػمممبىٌ اى٘‪ٝ‬مممت ٍٗمممِ أشمممٖش ٕمممزٓ اىَ٘اقمممغ اىزممم‪ ٜ‬مبّمممذ اىَشعمممغ اىشئ‪ٞ‬غممم‪ ٜ‬ىنزبثمممخ ٕمممزا اىنزمممبة ٍ٘قمممغ‬
‫‪ٍ٘ٗ https://www.w3schools.com/‬قغ ‪ٗ https://www.tutorialspoint.com‬ثؼط اىَ٘قغ ا‪ٟ‬خش‪. ٙ‬‬

‫مَب ‪ٝ‬غت أُ ‪ٝ‬ؼيٌ مو ٍِ ‪ٝ‬قشأ ٕزا اىنزبة أُ ٕزا اىنزبة إَّب ٕ٘ ثَضبثخ ٍقذٍخ ىذخ٘ىل ىيغخ ‪ Java script‬خبصخ ٗػبىٌ‬
‫اى٘‪ٝ‬ت ػبٍخ ‪ٗ ،‬أال ‪ٝ‬غت أال ‪ٝ‬نُ٘ ٕزا اىنزبة ٕ٘ ٍشعؼل األعبع‪ ٜ‬ألُ ٍمغ ٍمشٗس اى٘قمذ ّغمذ إّمٔ ‪ٝ‬ؾمذس رغ‪ٞ‬مشاد فم‪ٜ‬‬
‫ىغخ ‪ٗ java script‬ىزىل ‪ٝ‬غت ػي‪ٞ‬ل دائَب أُ رنُ٘ ػي‪ ٚ‬ػٖذ ثٖزٓ اىزغ‪ٞ‬شاد ٗاىزط٘‪ٝ‬شاد اىز‪ ٜ‬رزؾذس ثشنو ٍغزَش ‪.‬‬

‫ٗ‪ٝ‬غؼذّ‪ ٜ‬أُ أخجشمٌ ثأُ ٕمزا اىنزمبة ٕم٘ صبىمش مزمبة فم‪ ٜ‬عيغميز‪ٗ ٜ‬اىزم‪ ٜ‬ػْ٘اّٖمب اىطش‪ٝ‬مق إىم‪ ٚ‬ػمبىٌ رصمَ‪ ٌٞ‬صمفؾبد‬
‫اى٘‪ٝ‬ت ‪ٗ . The way to Web design‬اّزظشّٗ‪ ٜ‬ف‪ ٜ‬اىغضء اىضبىش ٍِ ششػ عيغيخ ‪. The way to Java script‬‬

‫مَمممب أّصمممؼ أؽجمممبث‪ ٜ‬دائَمممب ً أُ ‪ٝ‬غمممؼ٘ا إىممم‪ ٚ‬اىؼيمممٌ ٗاىمممزؼيٌ فَٖمممب اىغمممج‪ٞ‬الُ ىؾ‪ٞ‬مممبح األٍمممٌ ٗىْٖعمممخ اىشمممؼ٘ة ٗسقممم‪ٜ‬‬
‫اإلّغبُ ‪ ،‬مَب أرمشمٌ ثق٘ه ثؼط اىؼيَبء ‪" :‬صمبح اىَبه أخشاعٔ ٗصمبح اىؼيٌ أُ رؼئَ ىغ‪ٞ‬شك"‪.‬‬

‫ٕممزا اىنزممبة ٕمم٘ صممذقخ عبس‪ٝ‬ممخ ػممِ ّفغمم‪ٗ ٜ‬إٔممو ث‪ٞ‬زمم‪ٗ ٜ‬أؽجممبث‪ٗ ، ٜ‬أعممأه هللا أُ ‪ٝ‬زقجممو ٕممزا اىؼَممو ٗ‪ٝ‬غيؼممٔ خبىصممب ً‬
‫ى٘عٖممٔ اىنممش‪ٗ . ٌٝ‬مَممب ٗظممؼزٔ ثمم‪ ِٞ‬أ‪ٝ‬ممذمٌ ىزْممبى٘ا ٍْممٔ ػيَ مب ً ٗىمم٘ مممبُ ‪ٝ‬غمم‪ٞ‬شا ً ‪ ،‬ف‪َٞ‬نممْنٌ أ‪ٝ‬ع مب ً ّشممشٓ ػيمم‪ ٚ‬أ‪ٍ٘ ٛ‬قممغ‬
‫ٗرؼمممذ‪ٝ‬و ٍؾزممم٘آ ثَمممب ‪ٝ‬خمممذً اىْمممبط ٗاالقزجمممبط ٍْمممٔ أ‪ٝ‬عمممب ً مَمممب رشمممبء ُٗ ثمممذُٗ اعمممزئزاُ‪ٍٗ .‬مممِ ‪ٝ‬شغمممت فممم‪ّ ٜ‬غمممخخ‬
‫‪ٕ ٍِ Word‬زا اىنزبة ف‪َٞ‬نْٔ أُ ‪ٝ‬شاعيْ‪ ٚ‬ػي‪ ٚ‬اإل‪َٞٝ‬الد ‪.‬‬

‫سؽممٌ هللا سعممالً إٔممذ‪ ٙ‬ىمم‪ ٜ‬ػ‪ٞ‬مم٘ث‪ ، ٜ‬أسعمم٘ ٍممِ مممو شممخص ‪ٝ‬قممشأ ٕممزا اىنزممبة إرا ٗقممف ػْممذ خطممأ ػيَمم‪ ٚ‬أٗ خطممأ‬
‫إٍالئمممم‪ ٜ‬أٗ ٍؼيٍ٘ممممخ قممممذ ‪ٝ‬غممممبء فَٖٖممممب أُ ‪ٝ‬شاعمممميْ‪ ٜ‬ػيمممم‪ ٚ‬اإل‪َٝ‬مممم‪ٞ‬الد ا‪ٟ‬ر‪ٞ‬ممممخ ىنمممم‪ ٚ‬أقممممً٘ ثإصممممالؽٔ فمممم‪ ٜ‬اىطجؼممممبد‬
‫ا‪ٟ‬خش‪ ، ٙ‬مَب أسع٘ أال رْغّ٘ب ٍِ صبىؼ دػ٘ارنٌ ‪.‬‬

‫‪E-mail : [email protected]‬‬
‫‪E-FaceBook : Mahmoud Soliman‬‬
‫‪Youtube : https://www.youtube.com/channel/UCfZvWjnYnfxI55v4LNhBekA‬‬

‫نححميم جميع انكحب انخبصة بنب يمكن محببعة قنبجي عهى انحيهيجزاو من خالل هذا انزابط ‪:‬‬
‫‪Telegram Channel: https://t.me/joinchat/-aC4Ps0pna5lY2M0‬‬

‫نححميم جميع انكحب انخبصة بنب يمكن محببعة صفححنب عهى انفيس بوك من خالل هذا انزابط ‪:‬‬
‫‪Public Page: Help-me-page‬‬

‫‪Mahmoud Soliman‬‬

You might also like