Professional Documents
Culture Documents
JavaScript Level Two
JavaScript Level Two
اﻟﻤﻘﺪﻣﺔ :
اﻟﺤﻤﺪ ﷲ ﻣﺎﺣﻤﺪه اﻟﺤﺎﻣﺪون وﻏﻔﻞ ﻋﻦ ﺣﻤﺪه اﻟﻐﺎﻓﻠﻮن واﻟﺼﻼة واﻟﺴﻼم ﻋﻠﻰ ﻋﺒﺪه ورﺳﻮﻟﻪ ﻣﺤﻤﺪ ﺻﻼة ﺑﻌﺪد ذرات
اﻟﺨﻼﺋﻖ وﻣﺎ ﻳﻜﻮن .ورﺿﺎك اﻟﻠﮫﻢ ﻋﻦ آﻟﻪ اﻟﻄﯿﺒﯿﻦ وﺻﺤﺒﻪ اﻟﻤﻜﺮﻣﯿﻦ اﻟﻤﺒﺠﻠﯿﻦ أﺟﻤﻌﯿﻦ وﺑﻌﺪ ،
ﻳﻘﺪم ھﺬا اﻟﺠﺰء ﻣﻦ اﻟﻜﺘﺎب ﻃﺮﻳﻘﺔ إﺳﺘﺨﺪام ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﻓﻲ ﺑﺮﻣﺠﺔ اﻟﻮﻳﺐ
ﻓﻲ ﺣﺎﻟﺔ وﺟﻮد أي أﺧﻄﺎء أرﺟﻮ اﻋﻼﻣﻲ ﻋﻦ اﻟﺨﻄﺄ ﻋﻠﻲ اﻟﻌﻨﻮان اﻟﺘﺎﻟﻲ
a_elhussein@hotmail.com
إھﺪاء :
وإﻧﺎ ﻣﺎداﻣﺖ ﻓﯿﺎ اﻟﺤﯿﺎة ﺑﺎذل ﺟﮫﺪي وﻋﻘﻠﻲ وﻣﺴﺘﻔﺮغ ﻃﺎﻗﺘﻲ ﻓﻲ اﻟﻌﻠﻢ وذﻟﻚ ﻟﺜﻼﺛﺔ أﻣﻮر
ﺍﻟﻤﺤﺘﻮﻳﺎﺕ
2
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺍﻟﻔﺼﻞ ﺍﻷﻭﻝ
ﺍﻟﻤﺼﻔﻮﻓﺎﺕ
Arrays
3
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻓﮫﺬه اﻟﻄﺮﻳﻘﺔ ﺗﺸﻜﻞ ﻋﻨﺎﺻﺮ اﻟﺒﺮﻣﺠﺔ أو اﻟﺘﻄﺒﯿﻖ ﻋﻠﻰ ﺻﻮره ﻛﺎﺋﻦ Objectﺗﻌﺮف ﺧﻮاﺻﻪ وﻃﺮﻗﻪ وﺑﻌﺪ ذﻟﻚ ﻳﻤﻜﻦ
اﺳﺘﺨﺪاﻣﻪ ﻷ داء ﻣﮫﺎم ﺧﺎﺻﺔ ﻛﻤﺎ ﺳﻨﺮي إن ﺷﺎء اﷲ ﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب .
ﻟﻜﻨﻨﺎ ﻟﻸﺳﻒ ﻻ ﻧﺴﺘﻄﯿﻊ اﻟﻘﻮل ﺑﺄن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﺗﺪﻋﻢ ﺑﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﺎت اﻟﻤﻮﺟﮫﺔ ﻛﻤﺎ ھﻮ اﻟﺤﺎل ﺑﻠﻐﺔ اﻟﺴﻲ ﺑﻠﺲ
ﺑﻠﺲ أو اﻟﺠﺎﻓﺎ ﻛﻤﺎ ﺳﻮف ﻳﺘﻀﺢ ﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ،وﻟﻜﻨﻨﺎ ﻳﻤﻜﻨﻨﺎ اﻟﻘﻮل ﺑﺄن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﺗﺪﻋﻢ
ﺑﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﺎت اﻷﺳﺎﺳﯿﺔ او اﻹﻋﺘﻤﺎدﻳﺔ Object Baseأي إﻋﺘﻤﺎدﻧﺎ ﻋﻠﻲ إﺳﺘﺨﺪام ﻛﺎﺋﻨﺎت ﻣﺒﻨﯿﺔ داﺧﻞ ﻟﻐﺔ
اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ built-in Objectsﻣﺜﻞ اﻟﻜﺎﺋﻦ windowو اﻟﻜﺎﺋﻦ . document
ﻛﻤﺎ ﻧﻌﻠﻢ أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﺗﻢ ﺗﺼﻤﯿﻤﮫﺎ ﻟﺒﺮﻣﺠﺔ ﺻﻔﺤﺎت اﻟﻮﻳﺐ ،ﻟﺬﻟﻚ ﺗﻢ ﺑﻨﺎء اﻟﻜﺎﺋﻨﺎت اﻷﺳﺎﺳﯿﺔ ﻟﻠﻐﺔ اﻟﺠﺎﻓﺎ
ﺳﻜﺮﺑﺖ ﺣﺘﻲ ﺗﻮاﻓﻖ ﻣﻤﯿﺰات ﻣﺘﺼﻔﺤﺎت اﻷﻧﺘﺮﻧﺖ ) ﻣﺜﻞ ﻣﺘﺼﻔﺢ أﻧﺘﺮﻧﺖ أﻛﺴﺒﻠﻮرار ( ﻣﺜﻞ اﻟﻜﺎﺋﻦ windowو document
،ﺑﺎﻹﺿﺎﻓﺔ إﻟﻲ أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﺗﻮﻓﺮ ﺑﻌﺾ اﻟﻜﺎﺋﻨﺎت اﻷﺧﺮي اﻟﻤﻔﯿﺪة ﻣﺜﻞ اﻟﻜﺎﺋﻦ Dateو Arrayو . String
ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻧﻔﺘﺮض أن ھﻨﺎك ﻛﺎﺋﻦ ﻳﻤﺜﻞ ﺳﯿﺎرة "ﻋﺮﺑﺔ" ھﺬه اﻟﺴﯿﺎرة ﻟﮫﺎ اﻟﺘﺎﻟﻲ :
• ﺧﺼﺎﺋﺺ Properties
ﻣﺜﻞ ﻟﻮﻧﮫﺎ ،ﻣﻮدﻳﻠﮫﺎ
• ﻃﺮق أو وﻇﺎﺋﻒ Methods
وﻟﮫﺎ ﻋﺪة وﻇﺎﺋﻒ ﺗﺆدﻳﮫﺎ ﻣﺜﻞ أﻧﮫﺎ ﺗﻤﺸﻲ وﺗﻘﻒ و ﺗﺴﺘﺪﻳﺮ
4
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺎ ھﻲ اﻟﻤﺼﻔﻮﻓﺎت
ﻗﺒﻞ أن ﻧﺬھﺐ ﻟﺘﻌﺮﻳﻒ ﻣﺎ ھﻲ اﻟﻤﺼﻔﻮﻓﺎت ،ھﺐ أﻧﻨﺎ ﻧﺮﻳﺪ ﻋﻤﻞ اﻟﺘﺎﻟﻲ :
ﻧﺮﻳﺪ ﻃﺒﺎﻋﺔ اﻟﺮﺳﺎﺋﻞ اﻟﺘﺎﻟﯿﺔ
"ﻣﺮﺣﺒﺎ ﺑﻚ"
"ﻧﺤﻦ اﻷن ﻧﺘﻌﻠﻢ اﻟﻤﺼﻔﻮﻓﺎت"
"اﻟﺤﻤﺪ ﷲ"
ﺗﺨﯿﻞ أﻧﻚ ﺗﺮﻳﺪ ﻋﻤﻞ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﻟﯿﺲ ﻋﻠﻲ ﺛﻼث ﻣﺘﻐﯿﺮات ﺑﻞ ﻋﻠﻲ ١٠٠ﻣﺘﻐﯿﺮ ﻧﺼﻲ أو ﻗﻞ ﻋﺪد ﻏﯿﺮ ﻣﺤﺪد
ﻣﻦ اﻟﻤﺘﻐﯿﺮات ،رﺑﻤﺎ ﻳﺴﺒﺐ ﻟﻚ ھﺬا إﺣﺴﺎس ﺑﺎﻟﻀﯿﻖ ﻟﻜﺜﺮة اﻷﻛﻮاد اﻟﺘﻲ ﺳﻮف ﺗﻜﺘﺐ ﻹﺗﻤﺎم ھﺬه اﻟﻤﮫﻤﺔ
ﻣﻦ ھﻨﺎ أﺗﺖ اﻟﺤﺎﺟﺔ ﻟﻌﻤﻞ ﻧﻮع ﺟﺪﻳﺪ ﻣﻦ اﻟﻤﺘﻐﯿﺮات وھﻮ ﻣﺎ ﻳﻄﻠﻖ ﻋﻠﯿﻪ اﻟﻤﺼﻔﻮﻓﺎت Arrays
اﻟﻤﺼﻔﻮﻓﺎت ھﻲ ﻣﻦ إﺣﺪي أﻧﻮاع اﻟﻤﺘﻐﯿﺮات وﻟﻜﻦ ﻳﻤﻜﻨﻚ أن ﺗﺨﺰن ﺑﮫﺬا اﻟﻤﺘﻐﯿﺮ ﻗﯿﻤﺔ واﺣﺪة أو أﻛﺜﺮ .
5
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ
ﻳﻤﻜﻨﻨﺎ إﻧﺸﺎء اﻟﻤﺼﻔﻮﻓﺔ ﺑﻌﺪة ﻃﺮق ﻛﻤﺎ ﻳﻠﻲ
- ٢إﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻣﻜﻮﻧﺔ ﻣﻦ ﻋﻨﺎﺻﺮ ﻋﺪدھﺎ ) nﺣﯿﺚ nﺗﻤﺜﻞ ﻋﺪد ﺻﺤﯿﺢ ﻣﻮﺟﺐ (
ﻹﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ وﻣﻞء ﻋﻨﺎﺻﺮھﺎ ﻓﻲ ﻧﻔﺲ اﻟﻮﻗﺖ ﻳﻮﺟﺪ ﻋﺪة ﻃﺮق ﻹﺗﻤﺎم ذﻟﻚ :
أ-
;)"var myArray = new Array("item1"," item2"," item3
إي ﻳﻤﻜﻨﻚ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ وإﻋﻄﺎء ﻗﯿﻢ ﻟﻌﻨﺎﺻﺮھﺎ ﺑﺸﻜﻞ ﻣﺒﺪﺋﻲ ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ
ﺳﻮف ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺗﺴﻤﻲ empArrayﺗﺤﺘﻮي ﻋﻠﻲ اﺳﻤﺎء ﺛﻼث ﻣﻮﻇﻔﯿﻦ
ب-
;]"var myArray = new Array["item1"," item2"," item3
إي ﻳﻤﻜﻨﻚ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ وإﻋﻄﺎء ﻗﯿﻢ ﻟﻌﻨﺎﺻﺮھﺎ ﺑﺸﻜﻞ ﻣﺒﺪﺋﻲ ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ
ﺳﻮف ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﺗﺴﻤﻲ empArrayﺗﺤﺘﻮي ﻋﻠﻲ اﺳﻤﺎء ﺛﻼث ﻣﻮﻇﻔﯿﻦ
6
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
إذا ھﻨﺎ ﻟﺪﻳﻨﺎ ﻋﻤﺎرة ﺗﺘﻜﻮن ﻣﻦ أرﺑﻌﺔ ﻃﻮاﺑﻖ ﻛﻞ ﻃﺎﺑﻖ ﻳﺤﺘﻮي ﻋﻠﻰ ﺷﺨﺺ ﻓﮫﺬا ھﻮ اﻟﺤﺎل ﺑﺎﻟﻨﺴﺒﺔ
ﻟﻠﻤﺼﻔﻮﻓﺔ ﻓﺎﻟﻌﻤﺎرة ھﻲ أﺳﻢ اﻟﻤﺼﻔﻮﻓﺔ .وﻋﺪد اﻟﻄﻮاﺑﻖ اﻷرﺑﻌﺔ ھﻮ ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ واﻟﺘﻰ ھﻲ أرﺑﻌﺔ
واﻻﺷﺨﺎص اﻟﺬي ﻛﺎن ﻛﻞ ﺷﺨﺺ ﻣﻨﮫﻢ ﻳﺴﻜﻦ ﺑﻄﺎﺑﻖ ھﻢ ﻗﯿﻤﺔ ﻛﻞ ﻋﻨﺼﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ .
إذا ھﻨﺎ اﻟﻤﻮﻗﻊ اﻷول ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ﻳﺴﺎوي اﻟﺤﺴﯿﻦ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ ﻳﺴﺎوي إﺳﻤﺎﻋﯿﻞ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻟﺚ ﻳﺴﺎوي
إﺑﺮاھﯿﻢ واﻟﻤﻮﻗﻊ اﻟﺮاﺑﻊ ﻳﺴﺎوي ﻳﻮﺳﻒ .
وﻟﻜﻦ ﻋﺎدة ﻓﻲ اﻟﻤﺼﻔﻮﻓﺎت ﻧﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ وﻟﯿﺲ ﻣﻦ اﻟﻮاﺣﺪ أي ﻧﻘﻮل ﻣﻮﻗﻊ اﻟﺼﻔﺮ ﻳﺴﺎوي اﻟﺤﺴﯿﻦ و اﻟﻤﻮﻗﻊ
اﻻول ﻳﺴﺎوي إﺳﻤﺎﻋﯿﻞ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ ﻳﺴﺎوي إﺑﺮاھﯿﻢ واﻟﻤﻮﻗﻊ اﻟﺜﺎﻟﺚ ﻳﺴﺎوي ﻳﻮﺳﻒ .
ﻟﻌﻠﻚ إﻧﺰﻋﺠﺖ ﻣﻦ ذﻟﻚ ،ﻻ داﻋﻲ ﻟﮫﺬا اﻹﻧﺰﻋﺎج أﻋﺘﺒﺮ اﻟﻌﻤﺎرة ﺗﺘﻜﻮن ﻣﻦ ﻃﺎﺑﻖ أرﺿﻲ وﻃﺎﺑﻖ أول وﻃﺎﺑﻖ ﺛﺎﻧﻲ وﻃﺎﺑﻖ
ﺛﺎﻟﺚ ،إذا اﻟﺤﺴﯿﻦ ﺳﻮف ﻳﺴﻜﻦ ﻓﻲ اﻟﻄﺎﺑﻖ اﻻرﺿﻲ وھﻮ اﻟﺼﻔﺮ أي ﻣﻮﻗﻊ رﻗﻢ ﺻﻔﺮ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ ،وإﺳﻤﺎﻋﯿﻞ ﻓﻲ
اﻟﻄﺎﺑﻖ اﻷول أي اﻟﻤﻮﻗﻊ اﻻول ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ وھﻜﺬا .
ﺗﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ
ﻧﻘﺼﺪ ﺑﺘﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ اي ﻛﯿﻔﯿﺔ ﺗﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺪاﺧﻞ ذاﻛﺮة اﻟﺠﮫﺎز
ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻛﯿﻒ ﻳﺘﻢ ﺗﻤﺜﯿﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﺎﻟﯿﺔ ﺑﺬاﻛﺮة اﻟﺠﮫﺎز
7
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻢ ﺗﺤﺪﻳﺪ ﻣﺼﻔﻮﻓﺔ ﻣﻜﻮﻧﺔ ﻣﻦ ﺛﻼث ﻋﻨﺎﺻﺮ ﻛﻤﺎ ﻳﻠﻲ
ﺛﻢ ﻗﻤﻨﺎ ﺑﺘﺤﺪﻳﺪ اﻟﻘﯿﻢ اﻟﻤﺨﺰﻧﺔ ﺑﻜﻞ ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ إﻳﺘﺪاء ﻣﻦ اﻟﻌﻨﺼﺮ اﻟﻤﻮﺟﻮد ﺑﺎﻟﻤﻮﻗﻊ ﺻﻔﺮ ﻛﻤﺎ ﻳﻠﻲ
8
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
وﻟﺘﻘﻠﯿﻞ ﺣﺠﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻨﻨﺎ إﺳﺘﺨﺪام ﺣﻠﻘﺎت اﻟﺘﻜﺮار ﻟﻤﻞء اﻟﻤﺼﻔﻮﻓﺎت ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ
ﺛﻢ ﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻘﯿﻤﺔ ٣٠ﺑﺪاﺧﻞ اﻟﺜﻼث ﻋﻨﺎﺻﺮ اﻷوﻟﻲ ﻟﻠﻤﺼﻔﻮﻓﺔ ﻛﻤﺎ ﻳﻠﻲ
9
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
><HTML dir=rtl
> </Titleاﻟﻤﺼﻔﻮﻓﺎت ><Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
ﻣﺤﻤﺪ"(var empNameArray = new Array ;)"أﺣﻤﺪ ﻣﺤﺴﻦ"",ﺣﻤﺪي ﻏﺎﻧﻢ"",ﻣﺤﻤﺪ ﻋﺒﺪ اﷲ"",اﻟﺤﺴﯿﻦ
ﻣﺤﻤﺪ"[ = // var empNameArray ;]" أﺣﻤﺪ ﻣﺤﺴﻦ"",ﺣﻤﺪي ﻏﺎﻧﻢ" ",ﻣﺤﻤﺪ ﻋﺒﺪ اﷲ"",اﻟﺤﺴﯿﻦ
10
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻛﻤﺎ ﻗﺪ ﻛﻨﺎ أﺷﺮﻧﺎ ﺑﺎﻟﺠﺰء اﻷول ﻣﻦ ھﺬا اﻟﻜﺘﺎب أن ﺟﻤﻠﺔ for inﺗﺴﺘﺨﺪم ﻟﻌﻤﻞ ﺗﻜﺮار ﻟﻠﻤﺘﻐﯿﺮات ﻣﻦ اﻟﻨﻮع اﻟﻜﺎﺋﻨﻲ
objectsﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت Arrays
ﻻﺣﻆ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻋﻨﺪﻣﺎ ﻗﻤﻨﺎ ﺑﺈﺳﺘﺨﺪام ﺟﻤﻠﺔ ، forﻓﻘﺪ إﺣﺘﺠﻨﺎ ﻟﺘﺤﺪﻳﺪ ﻋﺪد ﻣﺮات اﻟﺘﻜﺮر ﺑﻤﻘﺪار ﻳﺴﺎوي ﻃﻮل
اﻟﻤﺼﻔﻮﻓﺔ ) اي ﺑﻌﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ( ﻛﻤﺎ ﻳﻠﻲ
وﻟﻜﻨﻨﺎ ﻋﻨﺪ إﺳﺘﺨﺪاﻣﻨﺎ ﻟﺠﻤﻠﺔ for inﻻ ﻧﺤﺘﺎج ﻟﺘﺤﺪﻳﺪ ﻋﺪد ﻣﺮات اﻟﺘﻜﺮار ،ﻷﻧﮫﺎ ﺑﺸﻜﻞ ﺗﻠﻘﺎﺋﻲ ﺳﻮف ﻳﺘﻢ اﻟﺘﻜﺮار ﺑﻌﺪد
ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ .
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل ﺗﻮﺿﯿﺤﻲ
ﻟﺤﺴﺎب ﻣﺠﻤﻮع ﻗﯿﻢ اﻟﻤﺼﻔﻮﻓﺔ
><HTML dir=rtl
> </Titleاﻟﻤﺼﻔﻮﻓﺎت ><Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
;)var numArray = new Array(2,34,45,32,101,-2,0,3,1
;var sum = 0
;) ]document.write(numArray[index
;) " >document.write( "<br
}
ﻣﺜﺎل
ﻧﺮﻳﺪ ﻋﻤﻞ داﻟﺔ ﻳﻤﺮر ﻟﮫﺎ اي ﻋﺪد ﻣﻦ اﻟﻤﻌﺎﻣﻼت ﺛﻢ ﺗﻘﻮم ﺑﺈرﺟﺎع اﻟﻘﯿﻤﺔ اﻷﻛﺒﺮ ﻟﮫﺬه اﻟﻘﯿﻢ
وﻗﺪ ﺗﻢ اﻹﺷﺎرة ﻟﮫﺬا اﻟﻤﺜﺎل ﺳﺎﺑﻘﺎ ﺑﺎﻟﺠﺰء اﻷول ﻣﻦ اﻟﻜﺘﺎب ﻛﻤﺎ ﻳﻠﻲ
><HTML dir=rtl
اﻟﺪوال ><Title ﺗﻤﺮﯾﺮ اﻟﻘﯿﻢ إﻟﻲ ></Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
;return max
}
>//--
></SCRIPT
></HEAD
></HTML
{ )( function getMax
;var args = getMax.arguments
;]var max = args[0
;return max
}
وھﺬه اﻟﺪاﻟﺔ ﻳﻤﻜﻨﮫﺎ أﺳﺘﻘﺒﺎل اي ﻋﺪد ﻣﻦ اﻟﻤﻌﺎﻣﻼت ﻋﻨﺪ إﺳﺘﺪﻋﺎﺋﮫﺎ ﻛﻤﺎ ﻳﻠﻲ
وﻳﺘﻢ إﺳﺘﻘﺒﺎل اﻟﻤﻌﺎﻣﻼت اﻟﻤﻤﺮرة ﻟﮫﺬة اﻟﺪاﻟﺔ ﻓﻲ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﺎﺑﻌﺔ ﻟﻜﺎﺋﻦ ھﺬة اﻟﺪاﻟﺔ
وھﺬه اﻟﻤﺼﻔﻮﻓﺔ ﺗﺴﻤﻲ argumentsوھﻲ أﺣﺪ ي ﺧﺼﺎﺋﺺ اﻟﺪاﻟﺔ getMaxﻛﻤﺎ ﻳﻠﻲ
{ )( function getMax
;var args = getMax.arguments
.
.
.
}
وﺑﺬﻟﻚ ﻳﻜﻮن اﻟﻤﺘﻐﯿﺮ argsﻳﺸﯿﺮ إﻟﻲ ﻣﺼﻔﻮﻓﺔ ﻋﻨﺎﺻﺮھﺎ ھﻲ اﻟﻤﻌﺎﻣﻼت اﻟﻤﻤﺮرة ﻟﻠﺪاﻟﺔ .
13
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
وﺑﺬﻟﻚ ﻧﺨﻠﺺ إﻟﻲ أﻧﻪ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ ﺧﻼل ﻣﻮاﻗﻌﮫﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺼﻔﻮﻓﺔ
أﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺼﻔﻮﻓﺎت اﻟﻤﺠﻤﻌﺔ ﻓﻼ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻨﺎﺻﺮھﺎ ﻣﻦ ﺧﻼل ﻣﻮاﻗﻊ ﺗﻠﻚ اﻟﻌﻨﺎﺻﺮ ،ﺑﻞ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻦ
ﺧﻼل أﺳﺘﺨﺪام ﻛﻠﻤﺎت ﻣﻔﺘﺎﺣﯿﻪ keysﺣﺘﻲ ﻳﻤﻜﻨﻨﺎ اﻹﺷﺎرة ﻟﻌﻨﺼﺮ ﻣﺎ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ .
ﻳﻤﻜﻨﻨﺎ أﻳﻀﺎ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻜﻠﻤﺎت اﻟﻤﻔﺘﺎﺣﯿﺔ ﻛﺄﻧﮫﺎ ﺧﺼﺎﺋﺺ ﺗﻢ إﺿﺎﻓﺘﮫﺎ إﻟﻲ ﻛﺎﺋﻦ اﻟﻤﺼﻔﻮﻓﺔ ) ﻛﻤﺎ ﺳﻮف ﻳﺘﻀﺢ ﺑﺸﻜﻞ
ﻣﻔﺼﻞ ﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ( ﻛﻤﺎ ﻳﻠﻲ
ﻻﺣﻆ أﻧﻨﺎ ﻻ ﻧﺴﺘﻄﯿﻊ اﻹﺷﺎرة ﻟﻌﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﻮاﺳﻄﺔ ﻣﻮﻗﻊ اﻟﻌﻨﺼﺮ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺼﻔﻮﻓﺔ ﻛﻤﺎ ﻳﻠﻲ
14
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻟﺘﻌﯿﻦ ﻗﯿﻢ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ اﻟﻤﺠﻤﻌﺔ ﻛﻤﺎ ﻳﻠﻲfor in ﻳﻤﻜﻨﻨﺎ إﺳﺘﺨﺪام ﺟﻤﻠﺔ
ﻣﺜﺎل
ﻧﺮﻳﺪ ﻛﺘﺎﺑﺔ ﻣﺤﺘﻮﻳﺎت ﻣﺼﻔﻮﻓﺔ ﻣﺠﻤﻌﺔ ﺑﺎﻟﻤﺘﺼﻔﺢ
<HTML>
<Title> اﻟﻤﺼﻔﻮﻓﺎت اﻟﻤﺠﻤﻌﺔ </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
15
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻟﺬﻟﻚ إذا أردﻧﺎ ﺣﺬف اﻟﻌﻨﺼﺮ اﻟﺜﺎﻟﺚ ﺑﺎﻟﻤﺼﻔﻮﻓﺔ oceansﻧﻘﻮم ﺑﻌﻤﻞ اﻟﺘﺎﻟﻲ
ﻟﻜﻦ ﻻﺣﻆ أن ﻃﻮل اﻟﻤﺼﻔﻮﻓﺔ ﻟﻢ ﻳﺘﻐﯿﺮ ﻓﻤﺎزال ﻃﻮل اﻟﻤﺼﻔﻮﻓﺔ ﻳﺴﺎوي ٤ -
وﺗﻜﻮن اﻟﻤﺼﻔﻮﻓﺔ ﻛﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
16
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻧﻲ
ﺍﻟﻤﺼﻔﻮﻓﺎﺕ ﺫﺍﺕ ﺍﻷﺑﻌﺎﺩ ﺍﻟﻤﺘﻌﺪﺩﺓ
Multidimensional Arrays
17
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
-ذات ﺑﻌﺪ واﺣﺪ وھﻮ ﻣﺎ ﻛﻨﺎ أﺷﺮﻧﺎ إﻟﯿﻪ ﺳﺎﺑﻘﺎ ﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ
أوﻻ اﻟﻤﺼﻔﻮﻓﺔ ذات اﻷﺑﻌﺎد اﻟﻤﺘﻌﺪدة ﻣﺜﺎﻻ ﻋﻠﻲ ذﻟﻚ اﻟﻤﺼﻔﻮﻓﺔ ﺛﻨﺎﺋﯿﺔ اﻷﺑﻌﺎد ،أي أﻧﻪ ﻳﻤﻜﻦ ﺗﻤﺜﯿﻞ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ
ﻋﻠﻲ ﺷﻜﻞ ﻣﺴﺘﻄﯿﻠﻲ ،وأﻳﻀﺎ اﻟﻤﺼﻔﻮﻓﺎت ﺛﻼﺛﯿﺔ اﻷﺑﻌﺎد ﻳﻤﻜﻦ ﺗﻤﺜﯿﻠﮫﺎ ﻓﻲ ﺷﻜﻞ ﻣﻜﻌﺒﻲ
وﻟﻦ أﻃﯿﻞ ﻓﻲ ھﺬا اﻟﺤﺪﻳﺚ ﻷﻧﻪ ﻟﻸﺳﻒ ﻻ ﺗﻮﻓﺮ ﻟﻨﺎ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻣﻜﺎﻧﯿﺔ ﻋﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﺘﻌﺪدة اﻷﺑﻌﺎد
وﻟﻜﻦ أﻧﺘﻈﺮ ﻗﻠﯿﻼ ﻓﺈﻧﻪ ﻳﻤﻜﻦ اﻟﺘﺤﺎﻳﻞ ﻋﻠﻲ ھﺬا اﻟﻤﻮﺿﻮع ﺑﻌﻤﻞ ﻣﺎ ﻳﺴﻤﻲ ﻣﺼﻔﻮﻓﺔ اﻟﻤﺼﻔﻮﻓﺔ
ﻣﺼﻔﻮﻓﺔ اﻟﻤﺼﻔﻮﻓﺔ أو ﻣﺎ ﺗﺴﻤﻲ أﺣﯿﺎﻧﺎ ﺑﻤﺼﻔﻮﻓﺔ اﻟﺠﺎﺟﺪ Jagged Arrayوھﻲ ﻃﺮﻳﻘﺔ ﻟﻠﺘﺤﺎﻳﻞ ﻟﻌﻤﻞ ﻣﺼﻔﻮﻓﺔ
ﻣﺘﻌﺪدة اﻷﺑﻌﺎد .
وﺗﻜﻮن ﻓﻜﺮة ﻋﻤﻞ ﺗﻠﻚ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻌﺘﻤﺪ ﻋﻠﻲ أﻧﻨﺎ ﻧﻘﻮم ﺑﻌﻤﻞ اﻟﺘﺎﻟﻲ :
ﻧﻘﻮم ﺑﺈﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﻛﻤﺎ ﺗﻌﻠﻤﻨﺎ ﺳﺎﺑﻘﺎ -
ﺛﻢ ﻧﻘﻮم ﺑﻤﻞء ﻋﻨﺎﺻﺮ ﺗﻠﻚ اﻟﻤﺼﻔﻮﻓﺔ ،وﻟﻜﻦ أﻧﺘﻈﺮ ﻗﻠﯿﻼ ﻓﺄﻧﻨﺎ ﻟﻦ ﻧﻘﻮم ﺑﻤﻞء ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﺑﻘﯿﻢ ﻣﻦ ﻧﻮع -
ﻧﺼﻲ أو رﻗﻤﻲ ﻛﻤﺎ ﻛﺎن ﺑﺎﻟﺴﺎﺑﻖ ،وﻟﻜﻨﻨﺎ ﺳﻮف ﻧﺠﻌﻞ ﻛﻞ ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ ﺗﻠﻚ اﻟﻤﺼﻔﻮﻓﺔ ﻳﺸﯿﺮ إﻟﻲ
ﻣﺼﻔﻮﻓﺔ أﺧﺮي ،ورﺑﻤﺎ ﺗﻜﻮن اﻟﻤﺼﻔﻮﻓﺔ اﻟﻤﺸﺎرة إﻟﯿﮫﺎ ذات ﺑﻌﺪ واﺣﺪ أو ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﻧﻮع ﻣﺼﻔﻮﻓﺔ اﻟﻤﺼﻔﻮﻓﺔ
18
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻛﻤﺎ ﻧﺮي ﻓﻘﺪ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ اﻟﻤﺼﻔﻮﻓﺔ CompBranchesاﻟﺘﻲ ﺗﻌﺒﺮ ﻋﻦ ﻓﺮوع اﻟﺸﺮﻛﺔ ﻛﻤﺎ ﻳﻠﻲ
اﻟﺮﺋﯿﺴﻲ"[ [ = var CompBranches "اﻟﻘﺎﻫﺮة"",اﻟﻔﺮع اﻟﻤﻨﯿﺮة"[ "] ,اﻟﺘﺠﺎرة " , "اﻷ ﺳﻜﻨﺪرﯾﺔ"",ﻓﺮع ] ]"اﻟﻤﺮاﺟﻌﺔ" ,
<HTML>
<Title> ﻣﺼﻔﻮﻓﺔ اﻟﻤﺼﻔﻮﻓﺔ </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var CompBranches = new Array(2);
document.write( "<br>" );
}
//-->
</SCRIPT>
</HEAD>
</HTML>
21
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
for in ﻣﺜﺎل أﺧﺮ ﻟﻄﺒﺎﻋﺔ ﺑﯿﺎﻧﺎت ﻣﺼﻔﻮﻓﺔ اﻟﻔﺮوع اﻟﺴﺎﺑﻘﺔ ﺑﺈﺳﺘﺨﺪام ﺟﻤﻠﺔ
<HTML>
<Title> ﻣﺼﻔﻮﻓﺔ اﻟﻤﺼﻔﻮﻓﺔ </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var CompBranches = new Array(2);
document.write( "<br>" );
}
//-->
</SCRIPT>
</HEAD>
</HTML>
22
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺨﺎﺻﯿﺔ constructor
ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻟﺨﺎﺻﯿﺔ constructorﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ،ﻋﻨﺪ اﻟﺤﺪﻳﺚ ﻋﻦ اﻟﻜﺎﺋﻨﺎت واﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﯿﺔ
اﻟﺨﺎﺻﯿﺔ prototype
ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻟﺨﺎﺻﯿﺔ prototypeﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ،ﻋﻨﺪ اﻟﺤﺪﻳﺚ ﻋﻦ اﻟﻜﺎﺋﻨﺎت واﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﯿﺔ
واﻟﻮراﺛﺔ Inheritance
23
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
length اﻟﺨﺎﺻﯿﺔ
ﻣﺜﺎل
alert( arr.length );
ﻣﺜﺎل
<HTML dir=rtl>
<Title> اﻟﻤﺼﻔﻮﻓﺔ ﻃﻮل </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var arr = new Array();
arr[0] = "100";
arr[1] = "12";
arr[2] = "44";
24
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
25
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
concat اﻟﺪاﻟﺔ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
Array.concat( arrayObject );
ﻣﺜﺎل
ﻣﺜﺎل
<HTML dir=rtl>
<Title> اﻟﻤﺼﻔﻮﻓﺔ دوال </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var array1 = new Array(1,2,3);
var array2 = new Array("a","b","c");
26
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
></HEAD
></HTML
اﻟﺪاﻟﺔ join
ﺗﺴﺘﺨﺪم ﻟﺪﻣﺞ ﻗﯿﻢ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ،وﻳﺘﻢ اﻟﺪﻣﺞ ﺑﯿﻦ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻊ وﺿﻊ ﻓﺎﺻﻞ ﺑﯿﻦ ﻗﯿﻢ اﻟﻌﻨﺎﺻﺮ وﻳﺘﻢ ﺗﺤﺪﻳﺪ
ھﺬا اﻟﻔﺎﺻﻞ .
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
;)""(str = arr.join
;) alert( str
27
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻛﻤﺎ ﻧﻼﺣﻆ ﻓﻘﺪ ﺗﻢ دﻣﺞ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ arrﺑﻮﺿﻊ اﻟﻌﻼﻣﺔ اﻟﻔﺎﺻﻠﺔ ""،
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
28
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ﻣﺜﺎل
;)(arr.pop
29
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
;)(arr.shift
ﻣﺜﺎل
30
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
<HTML dir=rtl>
<Title> اﻟﻤﺼﻔﻮﻓﺔ دوال </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var arr = new Array(""إﯾﻬﺎب," "ﻣﺤﻤﺪ,"" ﻋﻼء,";)" ﺣﺴﯿﻦ
var stack = new Array();
stack.push( arr[0] );
stack.push( arr[2] );
str = stack.pop();
document.write( "<b>" + str + "</b>");
//-->
</SCRIPT>
</HEAD>
</HTML>
31
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ reverse
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Array.reverse
ﻣﺜﺎل
ﻣﺜﺎل
32
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
اﻟﺪاﻟﺔ sort
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Array.sort
أو
33
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ﻛﻤﺎ ﺗﺮي ﻟﻢ ﻳﺘﻢ اﻟﺘﺮﺗﯿﺐ ﺑﺸﻜﻞ ﺻﺤﯿﺢ ،ﻷﻧﻪ ﺗﻢ ﺗﺮﺗﯿﺐ ﻋﻨﺎﺻﺮ ﻗﯿﻢ اﻟﻤﺼﻔﻮﻓﺔ ﻋﻠﻲ أﺳﺎس أﻧﮫﺎ ﻗﯿﻢ ﻧﺼﯿﺔ
وﻟﺤﻞ ھﺬة اﻟﻤﺸﻜﻠﺔ ﻳﺘﻢ ﻋﻤﻞ داﻟﺔ ﺧﺎﺻﺔ ﻟﻠﺘﺮﺗﯿﺐ ﻛﻤﺎ ﻳﻠﻲ
ﻣﺜﺎل
><HTML dir=rtl
اﻟﻤﺼﻔﻮﻓﺔ ><Title دوال ></Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
34
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
{ )function compare(a, b
;return a – b
}
ﺗﻘﻮم ﻛﻠﺘﺎ اﻟﺪاﻟﺘﯿﻦ ﺑﺪﻣﺞ ﻗﯿﻢ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻓﻲ ﻣﺘﻐﯿﺮ ﻧﺼﻲ ﺑﻮﺿﻊ ﻓﺎﺻﻞ ﺑﯿﻦ اﻟﻘﯿﻢ
ﻓﻌﻨﺪ إﺳﺘﺨﺪام اﻟﺪاﻟﺔ toStringﻳﻜﻮن اﻟﻔﺎﺻﻞ اﻟﻤﺴﺘﺨﺪم ھﻮ ""،
وﺑﺬﻟﻚ ﻓﺈﻧﮫﺎ ﺗﻜﺎﻓﺊ ﻋﻤﻞ اﻟﺪاﻟﺔ joinﻛﻤﺎ ﻳﻠﻲ
;)"Array.join(",
;)";"(Array.join
35
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
Array.toLocaleString();
Array.toString();
ﻣﺜﺎل
str = arr1.toString();
alert( str );
36
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻟﺚ
ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﻨﺼﻮﺹ
37
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻛﻤﺎ ﻛﻨﺎ ﻗﺪ أﺷﺮﻧﺎ ﺳﺎﺑﻘﺎ ﺑﺎﻟﺠﺰء اﻷول ﻣﻦ اﻟﻜﺘﺎب ﻓﻲ ﻓﺼﻞ اﻟﻤﺘﻐﯿﺮات أن ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﻟﯿﺴﺖ ﻣﻦ اﻟﻠﻐﺎت اﻟﺘﻲ
ﺗﻤﯿﺰ أﻧﻮاع اﻟﺒﯿﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ ﺑﺎﻟﻤﺘﻐﯿﺮات ﻳﺸﻜﻞ ﻗﻮي " "not strongly typed languageﻳﺠﻌﻠﮫﺎ ﺗﻤﯿﺰ ﺑﯿﻦ اﻟﻤﺘﻐﯿﺮات
اﻟﺤﺮﻓﯿﺔ واﻟﻤﺘﻐﯿﺮات اﻟﻨﺼﯿﺔ ﺑﺸﻜﻞ ﺟﯿﺪ ،ﻛﻤﺎ ﺳﻨﺮي ﻇﮫﻮر ﺑﻌﺾ اﻟﻤﺸﺎﻛﻞ ﻋﻨﺪ إﺳﺘﺨﺪام اﻟﻤﺘﻐﯿﺮات اﻟﻨﺼﯿﺔ اﻟﺒﺴﯿﻄﺔ
ﻟﺬﻟﻚ ﻇﮫﺮت اﻟﺤﺎﺟﺔ ﻹﻧﺸﺎء ﻛﺎﺋﻦ ﻧﺼﻲ ﻳﻜﻮن ﻣﺒﻨﻲ داﺧﻞ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﻳﻮﻓﺮ أﺳﻠﻮب ﺗﻌﺎﻣﻞ ﺻﺤﯿﺢ ﻣﻊ اﻟﻤﺘﻐﯿﺮات
اﻟﻨﺼﯿﺔ
ﻣﺎ ھﻮ اﻟﻨﺺ اﻟﺒﺴﯿﻂ :ﻳﺘﻜﻮن اﻟﻨﺺ ﻣﻦ ﺣﺮف أو أﻛﺜﺮ ورﺑﻤﺎ ﻣﻦ رﻗﻢ أو أﻛﺜﺮ أو رﺑﻤﺎ ﻳﻜﻮن ﺧﻠﯿﻂ ﻣﻦ ﺣﺮوف ﻣﻊ أرﻗﺎم ﻟﻜﻦ
ﺑﺸﺮط أن ﻳﺘﻢ وﺿﻊ ھﺬه اﻟﺤﺮوف ﺑﯿﻦ ﻋﻼﻣﺘﯿﻦ ﺗﻨﺼﯿﺺ ﻛﻤﺎ ﻳﻠﻲ
ﻻﺣﻆ أﻳﻀﺎ أن اﻟﻤﺘﻐﯿﺮ اﻟﻨﺼﻲ رﺑﻤﺎ ﻻ ﻳﺤﺘﻮي ﻋﻠﻲ اي ﺣﺮوف أو أرﻗﺎم وھﻮ ﻣﺎ ﻳﺴﻤﻲ ﺑﺎﻟﻤﺘﻐﯿﺮ اﻟﻨﺼﻲ اﻟﻔﺎرغ Empty
Stringﻛﻤﺎ ﻳﻠﻲ
ﻣﺜﺎل
38
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ﻻﺣﻆ ﻣﻌﻲ أﻧﻪ ﺗﻢ إﻋﺘﺒﺎر ﻗﯿﻤﺔ اﻟﻤﺘﻐﯿﺮ str2ﻗﯿﻤﺔ ﻧﺼﯿﺔ ﺑﺎﻟﺮﻏﻢ ﻣﻦ أﻧﮫﺎ ﻟﻢ ﻳﺘﻢ وﺿﻌﮫﺎ ﺑﯿﻦ ﻋﻼﻣﺘﯿﻦ ﺗﻨﺼﯿﺺ وﻛﺎن
اﻟﻤﺘﻮﻗﻊ أن ﻳﻜﻮن ﻧﺎﺗﺞ اﻟﺠﻤﻊ ھﻮ . ٥
وﻟﻌﻼج ھﺬة اﻟﻤﺸﻜﻠﺔ ﻳﺘﻢ إﺳﺘﺨﺪام اﻟﺪاﻟﺔ parseIntأو اﻟﺪاﻟﺔ parseFloatﻛﻤﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ
ﻣﺜﺎل
ﻓﻲ ھﺬا اﻟﻤﺜﺎل ﻧﻄﻠﺐ ﻣﻦ اﻟﻤﺴﺘﺨﺪم إدﺧﺎل رﻗﻤﯿﻦ ،ﺛﻢ ﻧﻘﻮم ﺑﺈﻇﮫﺎر ﺣﺎﺻﻞ ﺟﻤﻌﮫﻢ
><HTML
><Title اﻟﻨﺼﻮص اﻟﺒﺴﯿﻄﺔ ></Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
وﻳﻜﻮن اﻟﻨﺎﺗﺞ ﻋﻨﺪ إدﺧﺎل اﻟﺮﻗﻢ اﻷول ﺑﺎﻟﻘﯿﻤﺔ ٤واﻟﺮﻗﻢ اﻟﺜﺎﻧﻲ ﺑﺎﻟﻘﯿﻤﺔ ، ٨ﻓﯿﻜﻮن ﻧﺎﺗﺞ اﻟﺠﻤﻊ ھﻮ ١٢ﻛﻤﺎ ﻳﻠﻲ
اﻟﺪاﻟﺔ parseInt
ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﻳﻞ اﻟﻘﯿﻢ اﻟﻨﺼﯿﺔ إﻟﻲ ﻗﯿﻢ ﻋﺪدﻳﺔ ﺻﺤﯿﺤﺔ ) اي أﻧﮫﺎ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻷﻋﺪاد اﻟﺼﺤﯿﺤﺔ وﻟﯿﺴﺖ ﻣﻊ اﻷﻋﺪاد
اﻟﻨﺴﺒﯿﺔ ( .
ﻛﻤﺎ رأﻳﻨﺎ ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ أﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺘﺤﻮﻳﻞ اﻟﻘﯿﻤﺔ اﻟﻨﺼﯿﺔ اﻟﺮاﺟﻌﺔ ﻣﻦ اﻟﺪاﻟﺔ promptإﻟﻲ ﻗﯿﻤﺔ ﻋﺪدﻳﺔ ﻳﻤﻜﻨﻨﺎ
إﺳﺘﺨﺪاﻣﮫﺎ ﻓﻲ اﻟﻌﻤﻠﯿﺎت اﻟﺤﺴﺎﺑﯿﺔ ﺑ ﺸﻜﻞ ﺻﺤﯿﺢ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ ﻣﻦ ھﺬه اﻟﺪاﻟﺔ :ﺑﻌﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﻳﻞ ﻳﺘﻢ إرﺟﺎع ﻗﯿﻤﺔ ﻋﺪدﻳﺔ ﺻﺤﯿﺤﺔ
ﻣﺜﺎل
40
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ﻻﺣﻆ أن اﻟﺪاﻟﺔ parseIntﺗﻘﻮم ﺑﺎﻟﺘﺤﻮﻳﻞ اﻟﻘﯿﻢ اﻟﻨﺼﯿﺔ إﻟﻲ ﻗﯿﻢ ﻋﺪدﻳﺔ ﺻﺤﯿﺤﺔ integer Number
ﻓﻘﺪ ﻗﺎﻣﺖ اﻟﺪاﻟﺔ ﺑﺈرﺟﺎع اﻟﻘﯿﻤﺔ NaNوھﻲ إﺧﺘﺼﺎر ﻟﻠﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ Not a Numericاي أن اﻟﻘﯿﻤﺔ اﻟﻤﻤﺮة ﻟﮫﺎ ﻟﯿﺴﺖ
ﻗﯿﻤﺔ ﻋﺪدﻳﺔ وﻟﺘﻔﺎدي ھﺬه اﻟﺤﺎﻟﺔ ﻳﻤﻜﻨﻨﺎ إﺳﺘﺨﺪام اﻟﺪاﻟﺔ . isNaN
اﻟﺪاﻟﺔ isNaN
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
41
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ ﻣﻦ ھﺬه اﻟﺪاﻟﺔ :ﺗﻘﻮم ﺑﺈرﺟﺎع ﻗﯿﻤﺔ ﻣﻦ اﻟﻨﻮع اﻟﺒﻮﻟﯿﻨﻲ اي إﺣﺪي اﻟﻘﯿﻤﺘﯿﻦ trueأو false
ﻣﺜﺎل
اﻟﺪاﻟﺔ parseFloat
ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﻳﻞ اﻟﻘﯿﻢ اﻟﻨﺼﯿﺔ إﻟﻲ ﻗﯿﻢ ﻋﺪدﻳﺔ ﻧﺴﺒﯿﺔ ) اي أﻧﮫﺎ ﺗﺘﻌﺎﻣﻞ ﻣﻊ اﻷﻋﺪاد اﻟﺼﺤﯿﺤﺔ و اﻷﻋﺪاد اﻟﻨﺴﺒﯿﺔ ( .
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ ﻣﻦ ھﺬه اﻟﺪاﻟﺔ :ﺑﻌﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﻳﻞ ﻳﺘﻢ إرﺟﺎع ﻗﯿﻤﺔ ﻋﺪدﻳﺔ ﻧﺴﺒﯿﺔ
ﻣﺜﺎل
42
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻛﻤﺎ ذﻛﺮﻧﺎ ﺳﺎﺑﻘﺎ أن اﻟﻨﺺ ھﻮ ﻋﺒﺎرات وﺟﻤﻞ ﻳﺘﻢ ﻛﺘﺎﺑﺘﮫﺎ ﺑﯿﻦ ﻋﻼﻣﺘﯿﻦ ﺗﻨﺼﯿﺺ ""
ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﻧﺮﻳﺪ ﻋﻤﻞ ﻧﺺ ﺑﻪ ﻋﺒﺎرة أﻧﺎ ﻣﻦ ﻣﺤﺒﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﺳﻮف ﻧﻘﻮم ﺑﻮﺿﻌﮫﺎ ﺑﯿﻦ ﻋﻼﻣﺘﯿﻦ
اﻟﺘﻨﺼﯿﺺ ﻛﻤﺎ ﻳﻠﻲ " أﻧﺎ ﻣﻦ ﻣﺤﺒﻲ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ " وﺑﺬﻟﻚ ﻳﺴﺘﻄﯿﻊ ﻣﻔﺴﺮ اﻟﻠﻐﺔ ﺗﻤﯿﺰ أن ھﺬه اﻟﻜﻠﻤﺎت ﺗﺎﺑﻌﺔ
ﻟﻨﺺ واﺣﺪ .
إذا إﻳﻦ اﻟﻤﺸﻜﻠﺔ وﻣﺘﻲ ﺗﻈﮫﺮ ﻧﻌﻢ أﻧﺖ ﻋﻠﻲ ﺣﻖ ﻻ ﺗﻮﺟﺪ ﻣﺸﻜﻠﺔ ھﻨﺎ إﻻ إذا ﺣﺪث اﻟﺘﺎﻟﻲ
ﺗﺨﯿﻞ ﻣﻌﻲ أن ﻧﺺ اﻟﺠﻤﻠﺔ ﻳﺤﺘﻮي ﻋﻼﻣﺔ ﺗﻨﺼﯿﺺ أو أﻛﺜﺮ
ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل أﻧﻚ ﺗﺮﻳﺪ ﻛﺘﺎﺑﺔ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﯿﺔ ) ھﻞ ھﻨﺎك "ﻣﺸﻜﻠﺔ " ﻳﺎ رﺟﻞ ؟( ﻛﻤﺎ ﺗﺮي أﻧﻨﺎ اﻷن ﻓﻲ ﻣﺄزق ﻷﻧﻨﺎ
ﻟﻮ وﺿﻌﻨﺎ ھﺬة اﻟﺠﻤﻠﺔ ﺑﯿﻦ ﻋﻼﻣﺘﯿﯿﻦ ﺗﻨﺼﯿﺺ ﺳﻮف ﻳﺤﺪث ﺗﺪاﺧﻞ ﻓﻲ ﻋﻼﻣﺎت اﻟﺘﻨﺼﯿﺺ وﺳﻮف ﻳﺆدي ھﺬا إﻟﻲ إرﺗﺒﺎك
ﻟﻤﻔﺴﺮ اﻟﻠﻐﺔ ﻣﻤﺎ ﻳﻨﺘﺞ ﻋﻨﻪ ﺧﻄﺄ ﻟﻐﻮي . syntax error
اﻷن ﻣﺎ اﻟﺤﻞ ؟
رﺑﻤﺎ ﻳﺘﺒﺎدر إﻟﻲ ذھﻨﻚ اﻟﮫﺮب ﻣﻦ اﻟﻤﺸﻜﻠﺔ وﺗﻘﻮل أﻧﺎ ﻟﺴﺖ ﻓﻲ ﺣﺎﺟﺔ ﻹﻇﮫﺎر ﻋﻼﻣﺎت اﻟﺘﻨﺼﯿﺺ ﻓﻲ اﻟﺠﻤﻠﺔ وﺳﻮف
أﺟﻌﻞ اﻟﺠﻤﻠﺔ ﺑﺪوﻧﮫﻤﺎ ﻛﻤﺎ ھﻮ ﺣﺎﻟﻨﺎ ﻧﺤﻦ اﻟﻌﺮب وﻟﻜﻦ داﺋﻤﺎ ﺗﺄﺗﻲ اﻟﺤﻠﻮل ﻟﺘﻔﺎدي اﻷﺧﻄﺎء وﺗﺠﻨﺒﮫﺎ وﻟﯿﺲ اﻟﮫﺮب
ﻣﻨﮫﺎ ،أﻋﺘﻘﺪ أﻧﻪ ﺗﺒﺎدر إﻟﯿﻚ اﻷن أن ھﺬه اﻟﻤﺸﻜﻠﺔ ﻟﮫﺎ ﺣﻞ اﺑﺸﺮك ﺑﻘﻮﻟﻲ ﻧﻌﻢ
ﺣﯿﺚ ﺗﻮﻓﺮ ﻟﻨﺎ ﻟﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ﻋﻼﻣﺎت اﻟﮫﺮوب . Escaping Characters
ﺗﻤﻜﻨﻚ ﻣﻦ ﺗﻀﻤﯿﻦ ﺑﻌﺾ اﻟﺤﺮوف اﻟﺘﻲ ﻳﺼﻌﺐ ﻛﺘﺎﺑﺘﮫﺎ ﻓﻲ ﻣﺤﺘﻮي اﻟﻨﺼﻮص وﻣﻨﮫﺎ اﻟﺘﺎﻟﻲ :
ﺑﻌﺪ اﻟﺘﻌﺮف اﻟﺴﺮﻳﻊ ﻟﻌﻼﻣﺎت اﻟﮫﺮوب ﻛﯿﻒ ﻳﻤﻜﻨﻨﺎ ﺣﻞ ﻣﺸﻜﻠﺔ ﻛﺘﺎﺑﺔ اﻟﻨﺺ اﻟﺴﺎﺑﻖ )ھﻞ ھﻨﺎك "ﻣﺸﻜﻠﺔ" ﻳﺎ رﺟﻞ ؟ (
ﺑﻜﻞ ﻳﺴﺮ ﻳﺘﻢ إﺳﺘﺒﺪال اي ﻋﻼﻣﺔ ﺗﻨﺼﯿﺺ )"( ﺑﻌﻼﻣﺔ اﻟﮫﺮوب )"\( وﻳﻜﻮن اﻟﻨﺺ ﻛﺎﻟﺘﺎﻟﻲ
)ﻫﻞ ﻫﻨﺎك \"ﻣﺸﻜﻠﺔ\" ﯾﺎ رﺟﻞ ؟ (
43
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
><HTML dir=rtl
اﻟﺘﻨﺼﯿﺺ ><Title ﺗﺪاﺧﻞ ﻋﻼﻣﺎت ></Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
ﻗﺪ"(document.write "> " + "<brﻧﺘﻤﻨﺎ ﻟﻚ ﯾﺎ ﻗﺎرﺋﻨﺎ \"اﻟﻌﺰﯾﺰ \" أن ﺗﻜﻮن +
أت " ;)" ﺗﻌﻠﻤﺖ ﻣﺎ ﺳﺒﻖ ﻣﻦ ﻗﻮل وان ﺗﺤﺮص ﻋﻠﻲ ﻣﺎ ﻫﻮ
>//--
></SCRIPT
></HEAD
></HTML
44
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
URL String Encoding and Decoding دوال ﺗﺸﻔﯿﺮ وﻓﻚ ﺗﺸﻔﯿﺮ ﻋﻨﺎوﻳﻦ اﻷﻧﺘﺮﻧﺖ
أﺣﯿﺎﻧﺎ ﻋﻨﺪﻣﺎ ﻧﻘﻮم ﺑﺈرﺳﺎل ﻋﻨﻮان ﻻﺣﺪي اﻟﻤﻮاﻗﻊ ،ﺑﺄن ﻧﻘﻮم ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل ﺑﻜﺘﺎﺑﺔ اﻟﻌﻨﻮان اﻟﺘﺎﻟﻲ
" "http://www.islamway.com/index.php?action=all newsﻓﻲ ﺷﺮﻳﻂ اﻟﻌﻨﻮان ﺑﺎﻟﻤﺘﺼﻔﺢ Address Barﻓﻌﻨﺪ
اﻟﻀﻐﻂ ﻋﻠﻲ زرار ذھﺎب goﻳﺘﻢ ﺗﺸﻔﯿﺮ ﻋﻨﻮان اﻟﻤﻮﻗﻊ urlﺗﻠﻘﺎﺋﯿﺎ اي ﻳﺘﻢ ﺗﺤﻮﻳﻞ اﻟﻌﻼﻣﺎت اﻟﺨﺎﺻﺔ إﻟﻲ ﻣﺎ ﻳﻘﺎﺑﻠﮫﺎ ﻓﻲ
اﻟﻨﻈﺎم اﻟﺴﺘﻌﺸﺮي ﺑﻨﻈﺎم اﻟﺘﺸﻔﯿﺮ اﻷﺳﻜﻲ ASCIIوﻳﻜﻮن اﻟﻌﻨﻮان اﻟﻨﺎﺗﺞ ﻛﻤﺎ ﻳﻠﻲ
" " http://www.islamway.com/index.php?action=all%20newsﻻﺣﻆ أن ﺣﺮف اﻟﻤﺴﺎﻓﺔ ﺑﯿﻦ اﻟﻜﻠﻤﺘﯿﻦ allو
اﻟﻜﻠﻤﺔ newsﺗﻢ إﺳﺘﺒﺪاﻟﮫﺎ ﺑﺎﻟﺮﻣﺰ اﻟﺘﺎﻟﻲ " "%20واﻟﺮﻗﻢ ٢٠ھﻮ اﻟﺮﻗﻢ اﻟﺴﺘﻌﺸﺮي ﻓﻲ ﻧﻈﺎم اﻟﺘﺸﻔﯿﺮ اﻷﺳﻜﻲ
اﻟﻤﻘﺎﺑﻞ ﻟﺤﺮف اﻟﻤﺴﺎﻓﺔ .
ﻟﻜﻦ أﺣﯿﺎﻧﺎ ﻧﻘﻮم ﻧﺤﻦ ﺑﺈﺳﺘﺨﺪام أﺣﺪي اﻟﺪوال ﻟﻌﻤﻞ إرﺳﺎل ﻟﻌﻨﻮان ﻣﻮﻗﻊ ﻣﻦ ﺧﻼل ﻛﻮد اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ وﺑﺬﻟﻚ ﻓﻨﺤﻦ
ﻓﻲ ﻋﺮﺿﺔ ﻟﻌﺪم ﺗﺸﻔﯿﺮ ﺑﯿﺎﻧﺎت ﻋﻨﻮان اﻟﻤﻮﻗﻊ اﻟﻤﺮﺳﻞ ﻟﺬﻟﻚ ﻧﺤﺘﺎج إﻟﻲ ﻛﻠﺘﺎ اﻟﺪاﻟﺘﯿﻦ escapeو . unescape
اﻟﺪاﻟﺔ escape
ﺗﺴﺘﺨﺪم ﻟﺘﺸﻔﯿﺮ اﻟﻌﻼﻣﺎت اﻟﺨﺎﺻﺔ اﻟﻤﻮﺟﻮدة ﺑﻌﻨﻮان اﻟﻤﻮﻗﻊ urlأو اي ﻧﺺ ) ﻟﯿﺲ ﺑﺎﻟﻀﺮورة أن ﻳﻜﻮن ﻋﻨﻮان ﻟﻤﻮﻗﻊ (
إﻟﻲ ﻣﺎ ﻳﻘﺎﺑﻠﮫﺎ ﻓﻲ اﻟﻨﻈﺎم اﻟﺴﺘﻌﺸﺮي ﺑﻨﻈﺎم اﻟﺘﺸﻔﯿﺮ اﻷﺳﻜﻲ ASCIIﻣﻀﺎﻓﺎ إﻟﯿﺔ اﻟﻌﻼﻣﺔ . %
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ ﻣﻦ ھﺬه اﻟﺪاﻟﺔ :ﺑﻌﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﻳﻞ ﻳﺘﻢ إرﺟﺎع ﻗﯿﻤﺔ ﻧﺼﯿﺔ
ﻣﺜﺎل
وﻛﻤﺎ ﺗﺮي ﻓﻘﺪ ﺗﻐﯿﺮ ﻋﻨﻮان اﻟﻤﻮﻗﻊ إﻟﻲ ﻋﻨﻮان ﺧﻄﺄ ﻷﻧﻪ ﺗﻢ ﺗﺸﻔﯿﺮ ﻛﻞ اﻟﻌﻨﻮان ،وﻟﻜﻨﻨﺎ داﺋﻤﺎ ﻣﺎ ﻧﺤﺘﺎج إﻟﻲ ﺗﺸﻔﯿﺮ
اﻟﺒﯿﺎﻧﺎت اﻟﻤﺮﺳﻠﺔ ﻓﻘﻂ ﻛﻤﺎ ﻳﻠﻲ
45
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
اﻟﺪاﻟﺔ unescape
ﺗﺴﺘﺨﺪم ﻟﻔﻚ ﺗﺸﻔﯿﺮ اﻟﻌﻼﻣﺎت اﻟﺨﺎﺻﺔ اﻟﻤﻮﺟﻮدة ﺑﻌﻨﻮان اﻟﻤﻮﻗﻊ urlأو اي ﻧﺺ ) ﻟﯿﺲ ﺑﺎﻟﻀﺮورة أن ﻳﻜﻮن ﻋﻨﻮان ﻟﻤﻮﻗﻊ
( إ ي ﻋﻜﺲ ﻣﺎ ﺗﻘﻮم ﺑﻪ اﻟﺪاﻟﺔ . escape
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ ﻣﻦ ھﺬه اﻟﺪاﻟﺔ :ﺑﻌﺪ ﻋﻤﻠﯿﺔ اﻟﺘﺤﻮﻳﻞ ﻳﺘﻢ إرﺟﺎع ﻗﯿﻤﺔ ﻧﺼﯿﺔ
ﻣﺜﺎل
46
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺍﻟﻔﺼﻞ ﺍﻟﺮﺍﺑﻊ
ﻛﺎﺋﻦ ﺍﻟﻨﺼﻮﺹ
47
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
أو
- ٢ﻻﺣﻆ أن اﻟﻨﺺ اﻟﺒﺴﯿﻂ ﻳﻤﻜﻦ إﺳﺘﺨﺪاﻣﻪ ﻣﺜﻞ اﻟﻤﺘﻐﯿﺮ اﻟﻨﺎﺷﺊ ﻣﻦ اﻟﻜﺎﺋﻦ String
ﻳﻮﻓ ﺮ ﻟﻨﺎ اﻟﻜﺎﺋﻦ اﻟﻨﺼﻲ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﺨﺼﺎﺋﺺ واﻟﺪوال اﻟﻤﮫﻤﺔ ،ﻟﺬﻟﻚ دﻋﻨﺎ ﻧﺘﺤﺪث اﻷن ﻋﻦ اﻟﺨﺼﺎﺋﺺ و اﻟﺪوال اﻟﺨﺎﺻﺔ
ﺑﻜﺎﺋﻦ اﻟﻨﺼﻮص
اﻟﺨﺎﺻﯿﺔ constructor
ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻟﺨﺎﺻﯿﺔ constructorﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ،ﻋﻨﺪ اﻟﺤﺪﻳﺚ ﻋﻦ اﻟﻜﺎﺋﻨﺎت واﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﯿﺔ
اﻟﺨﺎﺻﯿﺔ prototype
ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻟﺨﺎﺻﯿﺔ prototypeﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ،ﻋﻨﺪ اﻟﺤﺪﻳﺚ ﻋﻦ اﻟﻜﺎﺋﻨﺎت واﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﯿﺔ
واﻟﻮراﺛﺔ Inheritance
اﻟﺨﺎﺻﯿﺔ length
ﺗﺴﺘﺨﺪم اﻟﺨﺎﺻﯿﺔ lengthﻟﺤﺴﺎب ﻃﻮل اﻟﻨﺺ اي ﻋﺪد اﻟﺤﺮوف اﻟﻤﻜﻮﻧﺔ ﻟﮫﺬا اﻟﻨﺺ
ﻣﺜﺎل
48
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
49
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺳﻮف ﻧﻘﺴﻢ دوال اﻟﻜﺎﺋﻦ اﻟﻨﺼﻲ إﻟﻲ ﻗﺴﻤﯿﻦ أﺣﺪھﻤﺎ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﺗﻘﻄﯿﻊ اﻟﻨﺼﻮص واﻷﺧﺮ ﻟﺘﻐﯿﺮ ﻧﺴﻖ اﻟﻨﺺ ﻣﻦ ﻟﻮن
وﺳﻤﻚ أﻟﺦ ﻋﻨﺪ ﻛﺘﺎﺑﺔ ﺗﻠﻚ اﻟﻨﺺ ﻓﻲ اﻟﻤﺘﺼﻔﺢ
اﻟﺪاﻟﺔ charAt
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
" (alert "اﻟﺤﺮف اﻟﺬي ﯾﻘﻊ ﻋﻨﺪ اﻟﻤﻮﻗﻊ اﻟﺜﺎﻧﻲ : ;) )+ str.charAt(1
50
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺗﻤﺮﻳﻦ
<HTML>
<Title> ﻋﻜﺲ اﻟﻨﺺ </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
return Revstr;
}
//-->
</SCRIPT>
</HEAD>
</HTML>
51
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ charCodeAt
ﺗﺴﺘﺨﺪم ﻟﻘﺮاءة ﺣﺮف واﺣﺪ ﻓﻲ ﻣﻮﻗﻊ ﻣﻌﯿﻦ ﻣﻦ اﻟﻨﺺ وﻟﻜﻦ ﺗﻘﻮم ﺑﺈرﺟﺎع اﻟﻘﯿﻤﺔ اﻟﻌﺪدﻳﺔ ﺑﻨﻈﺎم اﻟﺘﺸﻔﯿﺮ اﻷﺳﻜﻲ
ASCIIﻟﮫﺬا اﻟﺤﺮف
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
;)(String.charCodeAt
ﻣﺜﺎل
اﻟﺪاﻟﺔ fromCharCode
ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﻳﻞ ﻗﯿﻤﺔ ﻋﺪدﻳﺔ أو أﻛﺜﺮ ﺑﻨﻈﺎم اﻷﺳﻜﻲ ASCIIإﻟﻲ ﻣﺎ ﻳﻘﺎﺑﻠﮫﺎ ﻣﻦ ﺣﺮوف
اي أﻧﮫﺎ ﺗﻘﻮم ﺑﻌﻜﺲ وﻇﯿﻔﺔ اﻟﺪاﻟﺔ charCodeAt
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
ﻣﺜﺎل
52
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ concat
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ :ﺗﻘﻮم ﺑﺈرﺟﺎع ﻗﯿﻤﺔ ﻧﺼﯿﺔ ﻣﻜﻮﻧﺔ ﻧﺎﺗﺞ دﻣﺞ ﻧﺼﯿﻦ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
اﻟﺪاﻟﺔ indexOf
ﺗﺴﺘﺨﺪم ﻟﻠﺒﺤﺚ ﻋﻦ ﻣﻮﻗﻊ ﻧﺺ داﺧﻞ ﻧﺺ أﺧﺮ ،وﻳﺒﺪأ اﻟﺒﺤﺚ ﻣﻦ أول ﺣﺮف ﺑﺎﻟﻨﺺ اﻟﺬي ﻳﺘﻢ اﻟﺒﺤﺚ ﻓﯿﻪ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ :ﺗﻘﻮم ﺑﺈرﺟﺎع ﻗﯿﻤﺔ ﻋﺪدﻳﺔ ﺗﻌﺒﺮ ﻋﻦ ﻣﻮﻗﻊ اﻟﻨﺺ اﻟﺬي ﻳﺘﻢ اﻟﺒﺤﺚ ﻋﻨﻪ داﺧﻞ اﻟﻨﺺ اﻟﻤﺒﺤﻮث ﻓﺒﻪ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
(String.indexOf اﻟﻘﯿﻤﺔ اﻟﻨﺼﯿﺔ اﻟﻤﺮاد اﻟﺒﺤﺚ ﻋﻨﻬﺎ , ;)ﻣﻮﻗﻊ ﺑﺪاﯾﺔ اﻟﺒﺤﺚ
ﻣﺜﺎل
ﻛﻤﺎ ﻧﺮي إذا ﻟﻢ ﻳﺘﻢ اﻟﻌﺜﻮر ﻋﻠﻲ اﻟﻨﺺ ﻳﺘﻢ إرﺟﺎع اﻟﻘﯿﻤﺔ ١ -
53
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺗﻤﺮﻳﻦ
><HTML
><Title اﻟﺘﺄﻛﺪ ﻣﻦ ﺻﺤﺔ اﻟﺒﺮﯾﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ ></Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
) )if( IsValidEmail(EmailstrFromUser
"(alert ﻫﺬا اﻟﺒﺮﯾﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ ﺻﺤﯿﺢ ;)"
else
" (alert ﻫﺬا اﻟﺒﺮﯾﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ ﻏﯿﺮ ﺻﺤﯿﺢ ;) "
>//--
></SCRIPT
></HEAD
></HTML
وﺳﻮف ﻧﺮي ﺑﺎﻟﻔﺼﻞ اﻟﻘﺎدم "اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺘﻌﺒﯿﺮات اﻟﻤﻨﺘﻈﻤﺔ" ﻛﯿﻒ ﻳﺘﻢ اﻟﺘﺄﻛﺪ ﻣﻦ اﻟﺒﺮﻳﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ ﺑﺸﻜﻞ أﻛﺜﺮ دﻗﺔ
اﻟﺪاﻟﺔ lastIndexOf
ﺗﺴﺘﺨﺪم ﻟﻠﺒﺤﺚ ﻋﻦ ﻣﻮﻗﻊ ﻧﺺ داﺧﻞ ﻧﺺ أﺧﺮ ،وﻳﺒﺪأ اﻟﺒﺤﺚ ﻣﻦ أﺧﺮ ﺣﺮف ﺑﺎﻟﻨﺺ اﻟﺬي ﻳﺘﻢ اﻟﺒﺤﺚ ﻓﯿﻪ ،وھﻲ
ﺑﺬﻟﻚ ﺗﺘﺸﺎﺑﻪ إﻟﻲ ﺣﺪ ﻣﺎ ﻣﻊ اﻟﺪاﻟﺔ . indexOf
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ :ﺗﻘﻮم ﺑﺈرﺟﺎع ﻗﯿﻤﺔ ﻋﺪدﻳﺔ ﺗﻌﺒﺮ ﻋﻦ ﻣﻮﻗﻊ اﻟﻨﺺ اﻟﺬي ﻳﺘﻢ اﻟﺒﺤﺚ ﻋﻨﻪ داﺧﻞ اﻟﻨﺺ اﻟﻤﺒﺤﻮث ﻓﺒﻪ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
(String.lastIndexOf اﻟﻘﯿﻤﺔ اﻟﻨﺼﯿﺔ اﻟﻤﺮاد اﻟﺒﺤﺚ ﻋﻨﻬﺎ , ;)ﻣﻮﻗﻊ ﺑﺪاﯾﺔ اﻟﺒﺤﺚ
54
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
ﻣﺜﺎل
55
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻻﺟﻆ اﻟﺘﺎﻟﻲ
ﻣﺜﺎل
ﻷﻧﻪ ﻋﻨﺪﻣﺎ ﻳﻜﻮن ﻣﻮﻗﻊ اﻟﻨﮫﺎﻳﺔ اﻟﻤﻤﺮر ﻟﻠﺪاﻟﺔ substringأو sliceﻗﯿﻤﺔ ﺳﺎﻟﺒﺔ ﻳﺘﻢ اﻟﺒﺤﺚ ﻣﻦ ﻧﮫﺎﻳﺔ ﻣﻮﻗﻊ اﻟﺒﺪاﻳﺔ ﻓﻜﻤﺎ
ﺑﺎﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻛﺎن ﻣﻮﻗﻊ اﻟﺒﺪاﻳﺔ ھﻮ ٢اي ﻣﺎ ﻳﻜﺎﻓﺊ اﻟﺤﺮف cﺛﻢ ﺗﻢ اﻟﺒﺤﺚ ﻟﻘﯿﻤﺔ ﻣﻮﻗﻊ اﻟﻨﮫﺎﻳﺔ ﺑﻘﯿﻤﺔ ﺳﺎﻟﺒﺔ ﺗﺴﺎوي
– ١اي أﻧﻪ ﺳﺘﺘﻢ ﻋﻤﻠﯿﺔ إﺧﺘﺰال اﻟﻨﺺ ﻓﻲ أﺗﺠﺎه اﻟﯿﺴﺎر إﺑﺘﺪأ ﻣﻦ اﻟﺤﺮف ﻣﻮﻗﻊ اﻟﺤﺮف . b
اﻟﺪاﻟﺔ substr
ﺗﺴﺘﺨﺪم ﻹﺳﺘﺨﻼص ﺟﺰء ﻣﻦ اﻟﻨﺺ ﺑﺪون أن ﺗﺆﺛﺮ ﻋﻠﻲ اﻟﻨﺺ اﻷﺳﺎﺳﻲ ،ﻛﻤﺎ ﺗﻔﻌﻞ اﻟﺪاﻟﺔ substringﻣﻊ وﺟﻮد ﻓﺎرق
أن اﻟﻤﻌﺎﻣﻞ اﻟﺜﺎﻧﻲ اﻟﻤﻤﺮر ﻟﻠﺪاﻟﺔ substrﻳﻌﺒﺮ ﻋﻦ ﻋﺪد اﻟﺤﺮوف اﻟﻤﺨﺘﺰﻟﺔ أو ﻃﻮل اﻟﻨﺺ اﻟﻨﺎﺗﺞ ،ﺑﯿﻨﻤﺎ ﻳﻌﺒﺮ ﻋﻦ ﻣﻮﻗﻊ
اﻟﻨﮫﺎﻳﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺪاﻟﺔ . substring
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
ﻣﺜﺎل
ﺗﻤﺮﻳﻦ
ﻧﺮﻳﺪ إﺳﺘﺨﻼص اﺳﻢ اﻟﻤﺴﺘﺨﺪم وﺳﻢ ﻣﺰود ﺧﺪﻣﺔ اﻟﺒﺮﻳﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ ﻟﻘﯿﻤﺔ ﺑﺮﻳﺪ إﻟﯿﻜﺘﺮوﻧﻲ ﻳﺘﻢ إﺳﺘﻘﺒﺎﻟﻪ ﻣﻦ
اﻟﻤﺴﺘﺨﺪم
ﻣﻊ اﻟﻌﻠﻢ أن اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻳﺴﺒﻖ ﻣﻮﻗﻊ اﻟﺮﻣﺰ @ و اﺳﻢ ﻣﺰود اﻟﺨﺪﻣﺔ ﻳﻠﻲ اﻟﺮﻣﺰ @ ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل
إذا ﻛﺎن اﻟﺒﺮﻳﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ اﻟﻤﺪﺧﻞ ھﻮ a_elhussein@hotmail.com
ﻳﻜﻮن اﺳﻢ اﻟﻤﺴﺘﺨﺪم a_elhussein
وﻳﻜﻮن اﺳﻢ اﻟﻤﺰود hotmail
56
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
<HTML dir=rtl>
<Title> اﻹﻟﯿﻜﺘﺮوﻧﻲ اﻟﺒﺮﯾﺪ </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var EmailstrFromUser;
EmailstrFromUser = prompt("اﻷﻟﯿﻜﺘﺮوﻧﻲ "ادﺧﻞ ﺑﺮﯾﺪك,"");
//-->
</SCRIPT>
</HEAD>
</HTML>
split اﻟﺪاﻟﺔ
ﺛﻢ ﺗﻘﻮم ﺑﻮﺿﻊ اﻟﺠﻤﻞ اﻟﻤﻘﻄﻌﺔ ﻓﻲ ﻣﺼﻔﻮﻓﺔ ذات، ﺗﺴﺘﺨﺪم ﻟﺘﻘﻄﯿﻊ اﻟﻨﺺ إﺳﺘﻨﺎدا ﻋﻠﻲ ﺟﻤﻠﺔ اﻟﺘﻘﻄﯿﻊ اﻟﻤﻤﺮرة ﻟﮫﺎ
. ﺑﻌﺪ واﺣﺪ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
57
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
;)""abcdef".split("cd
ﻣﺜﺎل
ﻣﺜﺎل
58
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺗﺴﺘﺨﺪم اﻟﺪاﻟﺔ toLowerCaseﻟﺘﺤﻮﻳﻞ ﺣﺎﻟﺔ اﻟﺤﺮوف ﺑﺎﻟﻨﺺ إﻟﻲ ﺣﺮوف ﺻﻐﯿﺮة small letters
وﻋﻠﻲ اﻟﻌﻜﺲ ﺗﺴﺘﺨﺪم اﻟﺪاﻟﺔ toUpperCaseﻟﺘﺤﻮﻳﻞ ﺣﺎﻟﺔ اﻟﺤﺮوف ﺑﺎﻟﻨﺺ إﻟﻲ ﺣﺮوف ﻛﺒﯿﺮة . capital letters
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(String.toLowerCase
;)(String.toUpperCase
ﻣﺜﺎل
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)String.toString
;)(String.valueOf
ﻣﺜﺎل
59
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﻮﺻﻒ اﻟﺪاﻟﺔ
) anchor( nameﺗﻌﻤﻞ اﻟﺘﺎﻟﻲ
><a name="">… </a
ﺗﻤﺮﻳﻦ
"اﻟﺤﻤﺪ ﷲ ﻣﺎﺣﻤﺪه اﻟﺤﺎﻣﺪون وﻏﻔﻞ ﻋﻦ ﺣﻤﺪه اﻟﻐﺎﻓﻠﻮن واﻟﺼﻼة واﻟﺴﻼم ﻋﻠﻰ ﻋﺒﺪ ه ورﺳﻮﻟﻪ ﻣﺤﻤﺪ ﺻﻼة ﺑﻌﺪد ذرات
اﻟﺨﻼﺋﻖ وﻣﺎ ﻳﻜﻮن .ورﺿﺎك اﻟﻠﮫﻢ ﻋﻦ آﻟﻪ اﻟﻄﯿﺒﯿﻦ وﺻﺤﺒﻪ اﻟﻤﻜﺮﻣﯿﻦ اﻟﻤﺒﺠﻠﯿﻦ أﺟﻤﻌﯿﻦ وﺑﻌﺪ" وﺗﻠﻮﻳﻨﮫﺎ ﺑﺎﻟﻠﻮن
60
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻷﺣﻤﺮ
<HTML dir=rtl>
<Title> < ﺗﻠﻮﯾﻦ اﻟﻨﺺ/Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var str = " اﻟﺤﻤﺪ ﷲ ﻣﺎﺣﻤﺪه اﻟﺤﺎﻣﺪون وﻏﻔﻞ ﻋﻦ ﺣﻤﺪه اﻟﻐﺎﻓﻠﻮن واﻟﺼﻼة واﻟﺴﻼم ﻋﻠﻰ ﻋﺒﺪ ه ورﺳﻮﻟﻪ
ورﺿﺎك اﻟﻠﮫﻢ ﻋﻦ آﻟﻪ اﻟﻄﯿﺒﯿﻦ و ﺻﺤﺒﻪ اﻟﻤﻜﺮﻣﯿﻦ اﻟﻤﺒﺠﻠﯿﻦ أﺟﻤﻌﯿﻦ وﺑﻌﺪ. ;"ﻣﺤﻤﺪ ﺻﻼة ﺑﻌﺪد ذرات اﻟﺨﻼﺋﻖ وﻣﺎ ﻳﻜﻮن
document.write(resultStr);
//-->
</SCRIPT>
</HEAD>
</HTML>
61
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
62
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺍﻟﻔﺼﻞ ﺍﻟﺨﺎﻣﺲ
ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺘﻌﺒﻴﺮﺍﺕ ﺍﻟﻤﻨﺘﻈﻤﺔ
Regular Expressions
63
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
وﻟﻤﻦ ﻳﺒﺮﻣﺞ ﺑﻠﻐﺔ ﻣﺜﻞ ﻟﻐﺔ perlاﻟﺒﯿﺮل ،ﻓﻠﻦ ﻳﺠﺪ إﺧﺘﻼف ﻓﻲ ﻃﺮﻳﻘﺔ إﺳﺘﺨﺪام اﻟﺘﻌﺒﯿﺮات اﻟﺨﺎﺻﺔ ﺑﻠﻐﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ
ﻋﻤﺎ ﺗﻌﻠﻤﻪ ﺑﻠﻐﺔ اﻟﺒﯿ ﺮل .
ﺗﻮﻓﺮ أﻳﻀﺎ اﻟﺘﻌﺒﯿﺮات اﻟﺨﺎﺻﺔ أﺳﻠﻮب ﻗﻮي ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻨﺼﻮص ،ﻣﻊ اﻟﻘﺪرة اﻟﻌﺎﻟﯿﺔ ﻟﺘﻘﻄﯿﻊ اﻟﻨﺼﻮص وإﺳﺘﺒﺪال ﻧﺺ ﺑﻨﺺ
أﺧﺮ وﻛﺜﯿﺮ ﻣﻦ اﻟﻤﮫﺎم اﻷﺧﺮي .
اﻷﻧﻤﺎط patterns
ا ﻷﻧﻤﺎط اﻟﺒﺴﯿﻄﺔ
ﻓﮫﺬا اﻟﻨﻤﻂ ﻳﻌﺒﺮ ﻋﻦ اﻟﺤﺮف "ﻣﺴﺎﻓﺔ" وﻓﯿﻤﺎ ﺑﻌﺪ ﺳﻮف ﻧﺮي ﻛﯿﻔﯿﺔ إﺳﺘﺨﺪام ھﺬا اﻟﻨﻤﻂ ﻹﺟﺮاء ﻋﻤﻠﯿﺎت اﻟﺒﺤﺚ و
اﻹﺳﺘﺒﺪال
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮف iاﻟﺬي ﻳﺠﻌﻞ ﻋﻤﻠﯿﺎت اﻟﺒﺤﺚ واﻹﺳﺘﺒﺪال اﻟﻘﺎﺋﻤﺔ ﻋﻠﻲ ھﺬا اﻟﻨﻤﻂ ﻻ ﺗ ﺘﺄﺛﺮ ﺑﺤﺎﻟﺔ اﻟﺤﺮوف ﻛﺒﯿﺮة أم
ﺻﻐﯿﺮة ،وﺣﺮف iھﻮ إﺧﺘﺼﺎر ﻟﻲ Case Insensitive
ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻌﺒﺮ ﻋﻦ ﻛﻠﻤﺔ " "WEBأو " "webأو " "Webأو " "weBوھﻜﺬا .
64
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮف gاﻟﺬي ﻳﺠﻌﻞ ﻋﻤﻠﯿﺎت اﻟﺒﺤﺚ واﻹﺳﺘﺒﺪال اﻟﻘﺎﺋﻤﺔ ﻋﻠﻲ ھﺬا اﻟﻨﻤﻂ ﺗﺘﻢ ﻋﻠﻲ ﻛﻞ اﻟﻨﺺ وﻻ ﺗﺘﻮﻗﻒ
ﺑﻤﺠﺮد أن ﻳﺘﻢ ﺗﻮاﻓﻖ اﻟﻨﻤﻂ ﻣﻊ ﺟﺰء ﻣﻦ اﻟﻨﺺ ،وﺣﺮف gھﻮ إﺧﺘﺼﺎر ﻟﻲ global
ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻌﺒﺮ ﻋﻦ ﻛﻠﻤﺔ " "webﻓﻘﻂ وﻟﻜﻦ ﻳﺘﻢ اﻟﺒﺤﺚ ﻋﻨﮫﺎ ﻓﻲ ﻛﻞ اﻟﻨﺺ ﺑﺪون ﺗﻮﻗﻒ .
ا ﻷﻧﻤﺎط اﻟ ﻤﺮﻛﺒﺔ
ﺗﻤﻜﻨﻨﺎ اﻷﻧﻤﺎط اﻟﻤﺮﻛﺒﺔ ﻣﻦ إﺟﺮاء ﺗﻌﺒﯿﺮات أﻛﺜﺮ ﻗﻮة ،وﻣﺜﻞ ﻋﻠﻲ ذﻟﻚ ﺗﻤﻜﻨﻨﺎ اﻷﻧﻤﺎط اﻟﻤﺮﻛﺒﺔ ﻣﻦ ﻋﻤﻞ اﻟﺘﺎﻟﻲ
اﻟﻮﺻﻒ اﻟﺮﻣﺰ
ﺗﻌﺒﺮ ﻋﻦ ﺣﺮف واﺣﺪ .
ﺗﻌﺒﺮ ﻋﻦ وﺟﻮد ﺣﺮف واﺣﺪ ﻋﻠﻲ اﻷﻛﺜﺮ ،اي رﺑﻤﺎ ﺗﻌﺒﺮ ﻋﻦ ?
ﻋﺪم وﺟﻮد اي ﺣﺮف
ﺗﻌﺒﺮ ﻋﻦ وﺟﻮد ﺣﺮف أو أﻛﺜﺮ أو ﻻ ﺷﺊ *
ﺗﻌﺒﺮ ﻋﻦ وﺟﻮد ﺣﺮف أو أﻛﺜﺮ +
ﻣﺜﺎل
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮف " " .داﺧﻞ ﻧﺺ اﻟﻨﻤﻂ ،ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻌﺒﺮ ﻋﻦ ﻛﻠﻤﺔ " "waebأو " "Wbebوھﻜﺬا
وﻻ ﻳﻌﺒﺮ ﻋﻦ " "webﻷن اﻟﺤﺮف " ".ﻳﻌﺒﺮ ﻋﻦ وﺟﻮد ﺣﺮف واﺣﺪ ﺑﺪون ﺗﺤﺪﻳﺪ ﻟﮫﺬا اﻟﺤﺮف.
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "catأو " "cutوھﻜﺬا وﻻ ﻳﻌﺒﺮ ﻋﻦ " "ctوﻻ ﻋﻦ ""category
ﻣﺜﺎل
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮف "? " داﺧﻞ ﻧﺺ اﻟﻨﻤﻂ ،ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻌﺒﺮ ﻋﻦ ﻛﻠﻤﺔ " "waebأو " "Wbebوھﻜﺬا
و أﻳﻀﺎ ﻳﻌﺒﺮ ﻋﻦ " "webﻷن اﻟﺤﺮف "?" ﻳﻌﺒﺮ ﻋﻦ وﺟﻮد ﺣﺮف واﺣﺪ ﺑﺪون ﺗﺤﺪﻳﺪ ﻟﮫﺬا اﻟﺤﺮف ورﺑﻤﺎ ﻳﻌﺒﺮ ﻋﻦ ﻻ ﺷﺊ.
65
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "catو " "cutو " "ctو " "cootوﻻ ﻳﻌﺒﺮ ﻋﻦ ""category
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "catو " "cutو " "ctو " "cootو ""category
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "catو " "cutو " "cootو ﻻ ﻳﻌﺒﺮ ﻋﻦ " "ctأو ""category
اﻟﻮﺻﻒ اﻟﺮﻣﺰ
ﺗﻌﺒﺮ ﻋﻦ أن ﻋﻨﺪ إﺟﺮاء ﻋﻤﻠﯿﺔ ﺗﻤﺎﺛﻞ اﻟﻨﺺ ﻣﻊ اﻟﻨﻤﻂ ﻳﺠﺐ ^
أن ﻳﺘﻜﺎﻓﺊ اﻟﻨﻤﻂ ﻣﻊ ﺑﺪاﻳﺔ اﻟﻨﺺ
ﺗﻌﺒﺮ ﻋﻦ أن ﻋﻨﺪ إﺟﺮاء ﻋﻤﻠﯿﺔ ﺗﻤﺎﺛﻞ اﻟﻨﺺ ﻣﻊ اﻟﻨﻤﻂ ﻳﺠﺐ $
أن ﻳﺘﻜﺎﻓﺊ اﻟﻨﻤﻂ ﻣﻊ ﻧﮫﺎﻳﺔ اﻟﻨﺺ
ﻣﺜﺎل
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮف "^" ﺑﺎﻟﻨﻤﻂ ،ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "webوﻻ ﻳﻌﺒﺮ ﻋﻦ " "this is a webﻷﻧﻨﺎ
أﺷﺘﺮﻃﻨﺎ ﻓﻲ ھﺬا اﻟﻨﻤﻂ أن ﺗﺄﺗﻲ ﻛﻠﻤﺔ webﻓﻲ أول اﻟﻨﺺ .
ﻣﺜﺎل
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮف " " $ﺑﺎﻟﻨﻤﻂ ،ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "webأ و " "this is a webﻷﻧﻨﺎ أﺷﺘﺮﻃﻨﺎ ﻓﻲ ھﺬا
اﻟﻨﻤﻂ أن ﺗﺄﺗﻲ ﻛﻠﻤﺔ webﻓﻲ أﺧﺮ اﻟﻨﺺ ،ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻻ ﻳﻌﺒﺮ ﻋﻦ ". "is web , good
66
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ﻻﺣﻆ وﺟﻮد اﻟﺤﺮﻓﯿﻦ "^ " و " "$ﺑﺎﻟﻨﻤﻂ ،ﻟﺬﻟﻚ ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "webﻓﻘﻂ .
اﻟﻮﺻﻒ اﻟﺮﻣﺰ
ﺗﻌﺒﺮ ﻋﻦ أن ﻳﺠﺐ ﺗﻜﺮار اﻟﺤﺮ ف اﻟﺴﺎﺑﻖ ﻟﻪ ﻋﺪد ﻣﻦ اﻟﻤﺮات }{n
ﻳﺴﺎوي n
ﺗﻌﺒﺮ ﻋﻦ أن ﻳﺠﺐ ﺗﻜﺮار اﻟﺤﺮف اﻟﺴﺎﺑﻖ ﻟﻪ ﻋﺪد ﻣﻦ اﻟﻤﺮات }{n,m
ﻳﺴﺎوي ﻣﻦ اﻟﻘﯿﻤﺔ nإﻟﻲ اﻟﻘﯿﻤﺔ m
ﺗﻌﺒﺮ ﻋﻦ أن ﻳﺠﺐ ﺗﻜﺮار اﻟﺤﺮف اﻟﺴﺎﺑﻖ ﻟﻪ ﻋﺪد ﻣﻦ اﻟﻤﺮات }{n,
ﻳﺴﺎوي ﻣﻦ اﻟﻘﯿﻤﺔ nإﻟﻲ ﻣﺎﻻﻧﮫﺎﻳﺔ
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "cctوﻻ ﻳﻌﺒﺮ ﻋﻦ " "catوﻻ ﻋﻦ ""ct
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "cctأو " "ctوﻻ ﻳﻌﺒﺮ ﻋﻦ ""cat
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "cctأو " "ccccctوﻻ ﻳﻌﺒﺮ ﻋﻦ " "catوﻻ ﻋ ﻦ ""ct
ﻣﺜﺎل
67
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺤﺎﻟﺔ اﻷوﻟﻲ
;var pattern = / a?/
ﻳﻜﺎﻓﺊ
;var pattern = / a{0,1}/
اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﯿﺔ
;var pattern = / a./
ﻳﻜﺎﻓﺊ
;var pattern = / a{1}/
اﻟﺤﺎﻟﺔ اﻟﺜﺎﻟﺜﺔ
;var pattern = / a*/
ﻳﻜﺎﻓﺊ
;var pattern = / a{0,}/
اﻟﺤﺎﻟﺔ اﻟﺮاﺑﻌﺔ
;var pattern = / a+/
ﻳﻜﺎﻓﺊ
;var pattern = / a{1,}/
اﻟﻮﺻﻒ اﻟﺮﻣﺰ
ﺗﻌﺒﺮ ﻋﻦ أﻧﻪ ﻳﺘﻢ اﻟﺒﺤﺚ ﻓﻲ اﻟﻤﺪي اﻟﻤﺤﺪد ][
ﺗﻌﺒﺮ ﻋﻦ أﻧﻪ ﻳﺘﻢ اﻟﺒﺤﺚ ﻓﻲ ﻋﻜﺲ اﻟﻤﺪي اﻟﻤﺤﺪد ] ^[
ﻣﺜﺎل
ھﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ اي ﺣﺮف ﺻﻐﯿﺮ small letterﻳﻘﻊ ﺑﯿﻦ اﻟﺤﺮﻓﯿﻦ aو z
ﻣﺜﺎل
ﻣﺜﺎل
68
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ﻳﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻟﺤﺮوف اﻟﺘﻲ ﻳﻤﻜﻦ ﻛﺘﺎﺑﺘﮫﺎ ﺑﺠﻤﯿﻊ اﻟﺤﺎﻻت )ﺻﻐﯿﺮة أو ﻛﺒﯿﺮة(
;var pattern = /[a-zA-Z]/
اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ﻻ ﻳﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻟﺤﺮوف اﻟﺘﻲ ﻳﻤﻜﻦ ﻛﺘﺎﺑﺘﮫﺎ ﺑﺠﻤﯿﻊ اﻟﺤﺎﻻت )ﺻﻐﯿﺮة أو ﻛﺒﯿﺮة(
;var pattern = /[^a-zA-Z]/
اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ﻳﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻷﻋﺪاد ﻣﻦ ﺻﻔﺮ إﻟﻲ ٩وﺟﻤﯿﻊ اﻟﺤﺮوف اﻟﻤﻜﺘﻮﺑﺔ
;var pattern = /[a-zA-Z0-9]/
ﻣﺜﺎل
ﻣﺜﺎل
اﻟﻮﺻﻒ اﻟﺮﻣﺰ
ﺗﻌﺒﺮ ﻋﻦ اﻷرﻗﺎم ﻣﻦ ﺻﻔﺮ إﻟﻲ ٩ \d
اي أﻧﮫﺎ ﺗﻜﺎﻓﺊ اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ][0-9
ﻻ ﺗﻌﺒﺮ ﻋﻦ اﻷرﻗﺎم ﻣﻦ ﺻﻔﺮ إﻟﻲ ٩ \D
اي أﻧﮫﺎ ﺗﻜﺎﻓﺊ اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ][^0-9
ﺗﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻟﺮﻣﻮز اﻟﺘﻲ ﻳﻤﻜﻦ ﻛﺘﺎﺑﺘﮫﺎ ﻛﺎﻷرﻗﺎم ﻣﻦ \w
ﺻﻔﺮ إﻟﻲ ٩أو ﻋﻦ اﻟﺤﺮوف ﻣﻦ aإﻟﻲ zأو ﻋﻦ اﻟﺤﺮف _ أو
ﻣﺎ ﻳﺴﻤﻲ ﺑﺎﻷﻧﺪرﺳﻜﻮر underscore
اي أﻧﮫﺎ ﺗﻜﺎﻓﺊ اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ]_[a-zA-Z0-9
ﻻ ﺗﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻟﺮﻣﻮز اﻟﺘﻲ ﻳﻤﻜﻦ ﻛﺘﺎﺑﺘﮫﺎ ﻛﺎﻷرﻗﺎم ﻣﻦ \W
ﺻﻔﺮ إﻟﻲ ٩أو ﻋﻦ اﻟﺤﺮوف ﻣﻦ aإﻟﻲ zأو ﻋﻦ اﻟﺤﺮف _ أو
ﻣﺎ ﻳﺴﻤﻲ ﺑﺎﻷﻧﺪرﺳﻜﻮر underscore
69
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اي أﻧﮫﺎ ﺗﻜﺎﻓﺊ اﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ]_[^a-zA-Z0-9
ﺗﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻟﺮﻣﻮز اﻟﺨﺎﺻﺔ اﻟﺘﻲ ﻳﺼﻌﺐ ﻛﺘﺎﺑﻪ ﺑﻌﻀﮫﺎ \s
ﻣﺜﻞ ﺣﺮف اﻟﻤﺴﺎﻓﺔ واﻟﺘﺎب tabواﻟﺴﻄﺮ اﻟﺠﺪﻳﺪ \n
واﻟﺮﻣﻮز اﻟﺘﺎﻟﯿﺔ \rو \f
ﻻ ﺗﻌﺒﺮ ﻋﻦ ﺟﻤﯿﻊ اﻟﺮﻣﻮز اﻟﺨﺎﺻﺔ اﻟﺘﻲ ﻳﺼﻌﺐ ﻛﺘﺎﺑﻪ ﺑﻌﻀﮫﺎ \S
ﻣﺜﻞ ﺣﺮف اﻟﻤﺴﺎﻓﺔ واﻟﺘﺎب tabواﻟﺴﻄﺮ اﻟﺠﺪﻳﺪ \n
واﻟﺮﻣﻮز اﻟﺘﺎﻟﯿﺔ \rو \f
ﺗﻌﺒﺮ ﻋﻦ أن اﻟﻨﻤﻂ ﻳﺠﺐ أن ﻳﺘﻮاﺟﺪ ﻓﻲ أول اﻟﻜﻠﻤﺔ ﻓﻘﻂ \b
ﻋﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل اﻟﻨﻤﻂ /\bor/ﻳﻌﺒﺮ ﻋﻦ organوﻻ
ﻳﻌﺒﺮ ﻋﻦ normal
اﻟﻮﺻﻒ اﻟﺮﻣﺰ
\ اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ \\
tab اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ \t
. اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ \.
? اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ ?\
+ اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ \+
* اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ *\
^ اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ ^\
$ اﻟﺤﺮف ﺗﻌﺒﺮ ﻋﻦ \$
اﻟﻤﺠﻤﻮﻋﺎت Grouping
ﺗﺴﺘﺨﺪم ﻟﺘﺠﻤﯿﻊ ﻧﻮاﺗﺞ اﻟﺒﺤﺚ ﻓﻲ ﻣﺠﻤﻮﻋﺎت ﻳﺘﻢ ﺗﺨﺰﻳﻨﮫﺎ ﻓﻲ ﻣﺼﻔﻮﻓﺔ أو ﻓﻲ ﻣﺘﻐﯿﺮات ﺗﺒﺪأ ﺑﺎﻟﺮﻣﺰ $ﻛﺎﻟﻤﺘﻐﯿﺮ $1و $2
وﻟﻌﻤﻞ ﻣﺠﻤﻮﻋﺎت ﻳﺘﻢ إﺳﺘﺨﺪام اﻟﺮﻣﺰ اﻷﻗﻮاس اﻟﺘﺎﻟﯿﺔ )( أو اﻟﻌﻼﻣﺔ اﻟﺘﺎﻟﯿﺔ | ﻛﻤﺎ ﻳﻠﻲ
ﻣﺜﺎل
ﺳﻮف ﻳﺘﻢ وﺿﻊ ﻧﺘﺎﺋﺞ اﻟﺒﺤﺚ ﻋﻠﻲ ھﺬا اﻟﻨﻤﻂ ﻓﻲ ﻣﺠﻤﻮﻋﺎت أﺣﺪھﻤﺎ ﻟﻠﻨﻤﻂ ] [0-9واﻷﺧﺮي ﻟﻠﻨﻤﻂ web
ﻣﺜﺎل
ﺳﻮف ﻳﺘﻢ وﺿﻊ ﻧﺘﺎﺋﺞ اﻟﺒﺤﺚ ﻋﻠﻲ ھﺬا اﻟﻨﻤﻂ ﻓﻲ ﻣﺠﻤﻮﻋﺎت أﺣﺪھﻤﺎ ﻟﻠﻨﻤﻂ catواﻷﺧﺮي ﻟﻠﻨﻤﻂ ، webوھﺬا اﻟﻨﻤﻂ
ﻳﻤﻜﻦ أن ﻳﻌﺒﺮ ﻋﻦ " "catأو ""web
70
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺑﻌﺪﻣﺎ ﺗﻌﻠﻤﻨﺎ ﻃﺮﻳﻘﺔ ﻛﺘﺎﺑﺔ اﻷﻧﻤﺎط ،ﺣﺎن اﻟﻮﻗﺖ ﻟﻤﻌﺮﻓﺔ ﻃﺮﻳﻘﺔ ﺗﻄﺒﯿﻘﮫﺎ
ﻟﺬﻟﻚ ﺳﻮف ﻧﻌﺘﻤﺪ ﻋﻠﻲ ﺑﻌﺾ دوال اﻟﻜﺎﺋﻦ اﻟﻨﺼﻲ ﻟﺘﻄﺒﯿﻖ اﻷﻧﻤﺎط وھﻲ ﻛﻤﺎ ﻳﻠﻲ
اﻟﺪاﻟﺔ match
ﺗﺴﺘﺨﺪم ﻟﻠﺒﺤﺚ ﻋﻦ ﻧﻤﻂ ﻣﻌﯿﻦ ﺑﺪاﺧﻞ اﻟﻨﺺ ،ﺛﻢ ﺗﻘﻮم ﺑﺈرﺟﺎع ﻣﺼﻔﻮﻓﺔ ﺑﮫﺎ ﻧﻮاﺗﺞ اﻟﺒﺤﺚ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
ﻣﻊ أﻧﺎ اﻟﻨﺺ ﻳﺤﺘﻮي ﻋﻠﻲ ﻛﻠﻤﺔ helloﻣﺮﺗﯿﻦ ﻟﻜﻦ ﻧﺎﺗﺞ اﻟﺒﺤﺚ ﻛﺎن ﻣﺮة واﺣﺪة ،وھﺬا ﺻﺤﯿﺢ ﻷن اﻟﻨﻤﻂ اﻟﻤﺴﺘﺨﺪم
ﻳﺘﻮﻗﻒ ﺑﻌﺪ ﺣﺪوث ﺗﻤﺎﺛﻞ ﻟﻪ ﻣﻊ اﻟﻨﺺ اﻟﺬي ﻳﺘﻢ اﻟﺒﺤﺚ ﻓﯿﻪ ،ﻟﺬﻟﻚ ﻹﺟﺮاء اﻟﺒﺤﺚ ﻋﻠﻲ ﺟﻤﯿﻊ اﻟﻨﺺ ﻳﺘﻢ إﺳﺘﺒﺪال اﻟﻨﻤﻂ
اﻟﺴﺎﺑﻖ ﺑﺎﻟﻨﻤﻂ اﻟﺘﺎﻟﻲ ﻛﻤﺎ ﻳﻠﻲ
71
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
ﺗﻤﺮﻳﻦ
<HTML dir=rtl>
<Title> اﻹﻟﯿﻜﺘﺮوﻧﻲ اﻟﺒﺮﯾﺪ </Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var EmailstrFromUser;
EmailstrFromUser = prompt("اﻷﻟﯿﻜﺘﺮوﻧﻲ "ادﺧﻞ ﺑﺮﯾﺪك,"");
ﺗﻤﺮﻳﻦ
ﻧﺮﻳﺪ إﺳﺘﺨﻼص اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﺳﻢ ﻣﺰود ﺧﺪﻣﺔ اﻟﺒﺮﻳﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ ﻟﻘﯿﻤﺔ ﺑﺮﻳﺪ إﻟﯿﻜﺘﺮوﻧﻲ ﻳﺘﻢ إﺳﺘﻘﺒﺎﻟﻪ ﻣﻦ
اﻟﻤﺴﺘﺨﺪم
ﻣﻊ اﻟﻌﻠﻢ أن اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻳﺴﺒﻖ ﻣﻮﻗﻊ اﻟﺮﻣﺰ @ و اﺳﻢ ﻣﺰود اﻟﺨﺪﻣﺔ ﻳﻠﻲ اﻟﺮﻣﺰ @ ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل
إذا ﻛﺎن اﻟﺒﺮﻳﺪ اﻹﻟﯿﻜﺘﺮوﻧﻲ اﻟﻤﺪﺧﻞ ھﻮ a_elhussein@hotmail.com
ﻳﻜﻮن اﺳﻢ اﻟﻤﺴﺘﺨﺪم a_elhussein
وﻳﻜﻮن اﺳﻢ اﻟﻤﺰود hotmail
ﻻﺣﻆ أن اﻟﻨﻤﻂ اﻟﻤﺴﺘﺨﺪم ھﻮ ﻧﻔﺲ اﻟﻨﻤﻂ اﻟﺴﺎﺑﻖ ﻣﻊ إﺿﺎﻓﺔ اﻟﻤﺠﻤﻮﻋﺎت ﺑﺈﺳﺘﺨﺪام اﻷﻗﻮاس .
><HTML dir=rtl
اﻹﻟﯿﻜﺘﺮوﻧﻲ ><Title اﻟﺒﺮﯾﺪ ></Title
><HEAD
>"<SCRIPT LANGUAGE="JavaScript
<!--
;var EmailstrFromUser
اﻷﻟﯿﻜﺘﺮوﻧﻲ"(EmailstrFromUser = prompt ;)""",ادﺧﻞ ﺑﺮﯾﺪك
}
else
ﺻﺤﯿﺢ"(alert ;)" ﻫﺬا اﻟﺒﺮﯾﺪ اﻟﻺﻟﯿﻜﺘﺮوﻧﻲ ﻏﯿﺮ
>//--
></SCRIPT
></HEAD
></HTML
اﻟﺪاﻟﺔ replace
ﺗﺴﺘﺨﺪم ﻟﻠﺒﺤﺚ ﻋﻦ ﻧﻤﻂ ﻣﻌﯿﻦ ﺑﺪاﺧﻞ اﻟﻨﺺ ﺛﻢ ﺗﻘﻮم ﺑﺈﺳﺘﺒﺪاﻟﻪ ﺑﻨﺺ أﺧﺮ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
73
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
اﻟﺪاﻟﺔ search
ﺗﺴﺘﺨﺪم ﻟﻠﺒﺤﺚ ﻋﻦ ﻧﻤﻂ ﻣﻌﯿﻦ ﺑﺪاﺧﻞ اﻟﻨﺺ ﺛﻢ ﺗﻘﻮم ﺑﺈرﺟﺎع ﻣﻜﺎن ﺗﻮاﺟﺪة ﻣﺜﻞ اﻟﺪاﻟﺔ indexOfاﻟﺘﺎﺑﻌﺔ ﻟﻠﻜﺎﺋﻦ اﻟﻨﺼﻲ
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ :ﺗﻘﻮم ﺑﺈرﺟﺎع ﻣﻮﻗﻊ اﻟﻨﺺ ﻋﻠﻲ ھﯿﺌﺔ ﻗﯿﻤﺔ ﻋﺪدﻳﺔ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
(String.search ﻧﻤﻂ اﻟﺒﺤﺚ ;)
ﻣﺜﺎل
;)(var str = new String
;"str = "hello mr hello
74
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺨﺎﺻﯿﺔ constructor
ﺳﻮف ﻧﺘﺤﺪث ﻋﻦ اﻟﺨﺎﺻﯿﺔ constructorﺑﺎﻟﺠﺰء اﻟﺜﺎﻟﺚ ﻣﻦ ھﺬا اﻟﻜﺘﺎب ،ﻋﻨﺪ اﻟﺤﺪﻳﺚ ﻋﻦ اﻟﻜﺎﺋﻨﺎت واﻟﺒﺮﻣﺠﺔ اﻟﻜﺎﺋﻨﯿﺔ
اﻟﺨﺎﺻﯿﺔ global
ھﺬه اﻟﺨﺎﺻﯿﺔ ﻟﻠﻘﺮأة ﻓﻘﻂ ، read onlyوﺗﻌﺒﺮ ھﻞ اﻟﻨﻤﻂ اﻟﻤﺴﺘﺨﺪم ﺗﻢ إﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ gﺑﻪ
ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل
اﻟﺨﺎﺻﯿﺔ ignoreCase
ھﺬه اﻟﺨﺎﺻﯿﺔ ﻟﻠﻘﺮأة ﻓﻘﻂ ، read onlyوﺗﻌﺒﺮ ھﻞ اﻟﻨﻤﻂ اﻟﻤﺴﺘﺨﺪم ﺗﻢ إﺳﺘﺨﺪام اﻟﻤﻌﺎﻣﻞ iﺑﻪ
ﻓﻌﻠﻲ ﺳﺒﯿﻞ اﻟﻤﺜﺎل
اﻟﺨﺎﺻﯿﺔ multiline
ھﺬه اﻟﺨﺎﺻﯿﺔ ﻟﻠﻘﺮأة ﻓﻘﻂ ، read onlyوﺗﻌﺒﺮ ھﻞ اﻟﻨﻤﻂ اﻟﻤﺴﺘﺨﺪم ﺳﻮف ﻻ ﻳﺘﺠﺎھﻞ اﻟﺴﻄﻮر اﻟﻌﺪﻳﺪة ﺑﻪ
اﻟﺨﺎﺻﯿﺔ source
ھﺬه اﻟﺨﺎﺻﯿﺔ ﻟﻠﻘﺮأة ﻓﻘﻂ ، read onlyوﺗﻌﺒﺮ ﻋﻦ ﺻﯿﻐﺔ اﻟﻨﻤﻂ اﻟﻤﺴﺘﺨﺪم ﺑﺎﻟﻜﺎﺋﻦ . RegExp
75
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ compile
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
ﻣﺜﺎل
اﻟﺪاﻟﺔ test
اﻟﻘﯿﻤﺔ اﻟﺮاﺟﻌﺔ :ﻓﻲ ﺣﺎﻟﺔ ﺗﻮاﻓﻖ اﻟﻨﻤﻂ ﻣﻊ اﻟﻨﺺ ﺗﺮﺟﻊ اﻟﺪاﻟﺔ اﻟﻘﯿﻤﺔ trueوﻓﻲ ﺣﺎﻟﺔ ﻋﺪم اﻟﺘﻮاﻓﻖ ﺗﺮﺟﻊ false
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
76
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ exec
ﻣﺜﺎل
77
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺍﻟﻔﺼﻞ ﺍﻟﺴﺎﺩﺱ
ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺘﺎﺭﻳﺦ
78
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
أو
ﻣﺜﺎل
ﻣﺜﺎل
79
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﺗﻨﻘﺴﻢ دوال ﻛﺎﺋﻦ اﻟﺘﺎرﻳﺦ إﻟﻲ ﺛﻼث أﻗﺴﺎم أﺣﺪھﻤﺎ دوال ﻹرﺟﺎع اﻟﻘﯿﻢ ﻣﻦ اﻟﺘﺎرﻳﺦ واﻷﺧﺮي ﻟﻮﺿﻊ ﻗﯿﻢ ﺑﺎﻟﺘﺎرﻳﺦ
واﻷﺧﺮي ﻟﺘﺤﻮﻳﻞ اﻟﺘﺎرﻳﺦ ﻛﻤﺎ ﻳﻠﻲ
اﻟﺪاﻟﺔ getDate
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getDate
ﻣﺜﺎل
80
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ getDay
ﺗﺴﺘﺨﺪم ﻹرﺟﺎع رﻗﻢ ﻳﻮم اﻷﺳﺒﻮع اﻟﻤﻮﺟﻮد ﺑﺎﻟﺘﺎرﻳﺦ وﺗﻜﻮن ﻣﻤﺜﻠﺔ ﻷﻳﺎم اﻷﺳﺒﻮع ﻣﻦ ٠إﻟﻲ ، ٦ﺣﯿﺚ ﺻﻔﺮ ﻳﻌﺒﺮ ﻋﻦ ﻳﻮم
اﻷﺣﺪ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getDay
ﻣﺜﺎل
اﻟﺪاﻟﺔ getMonth
ﺗﺴﺘﺨﺪم ﻹرﺟﺎع رﻗﻢ اﻷﺷﮫﺮ ﻣﻦ ٠إﻟﻲ ، ١١ﺣﯿﺚ ﻳﻌﺒﺮ اﻟﺮﻗﻢ ﺻﻔﺮ ﻋﻦ ﺷﮫﺮ ﻳﻨﺎﻳﺮ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getMonth
81
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
اﻟﺪاﻟﺔ getYear
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getYear
ﻣﺜﺎل
82
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ getHours
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getHours
ﻣﺜﺎل
اﻟﺪاﻟﺔ getMinutes
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getMinutes
ﻣﺜﺎل
83
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ getSeconds
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getSeconds
ﻣﺜﺎل
اﻟﺪاﻟﺔ getTime
ﺗﺴﺘﺨﺪم ﺑﺤﺴﺎب اﻟﺘﺎرﻳﺦ ﺑﺎﻟﻤﻠﻲ ﺳﻜﻨﺪ اﻟﺬي ﻣﺮ ﻋﻠﻲ ھﺬا اﻟﺘﺎرﻳﺦ ﻣﻨﺬ ﺗﺎرﻳﺦ ﻣﻨﺘﺼﻒ ﻟﯿﻞ ﻳﻮم ١ﻳﻨﺎﻳﺮ ١٩٧٠
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.getTime
ﻣﺜﺎل
84
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ setDate
ﺗﺴﺘﺨﺪم ﻟﻮﺿﻊ ﻋﺪد اﻷﻳﺎم ﺑﺎﻟﺘﺎرﻳﺦ وﺗﻜﻮن اﻟﻘﯿﻤﺔ اﻟﻤﻀﺎﻓﺔ ﻣﻦ ١إﻟﻲ ٣١
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
اﻟﺪاﻟﺔ setMonth
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
اﻟﺪاﻟﺔ setYear
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
85
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
اﻟﺪاﻟﺔ setHours
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
اﻟﺪاﻟﺔ setMinutes
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
اﻟﺪاﻟﺔ setSeconds
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
اﻟﺪاﻟﺔ toGMTString
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.toGMTString
86
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
ﻣﺜﺎل
اﻟﺪاﻟﺔ toLocaleString
ﺗﺴﺘﺨﺪم ﻟﺘﺤﻮﻳﻞ اﻟﺘﺎرﻳﺦ إﻟﻲ ﻣﺎ ﻧﺺ ﻋﻠﻲ ﺣﺴﺐ ﻧﻈﺎم اﻟﺘﺸﻐﯿﻞ اﻟﺬي ﻳﻌﻤﻞ ﺑﻪ اﻟﺠﮫﺎز
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
;)(Date.toLocaleString
ﻣﺜﺎل
87
اﻟﺒﺮﻣﺠﺔ ﺑﺎﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ اﻟﺠﺰء اﻟﺜﺎﻧﻲ
parse اﻟﺪاﻟﺔ
اﻟﺼﯿﻐﺔ اﻟﻌﺎﻣﺔ
ﻣﺜﺎل
alert( dateObject.getYear() );
ﺗﻤﺮﻳﻦ
<HTML dir=rtl>
<Title> < اﻟﺘﺎرﯾﺦ/Title>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
89