منتدى المعالي
 
عدد الضغطات : 1,328
ينتهي : 24-10-2012
Ma3ali Tube Towards Happiness الجـوال الغرفة الصوتية البطاقات الصـوتيـات مركز التحميل مجلة أجيال
Ma3ali Tube Be Happy الجـوال Ma3ali flickr الغرفة الصوتية البطاقات الصـوتيـات مركز التحميل مجلة أجيال



عدد الضغطات : 15,821عدد الضغطات : 5,528
ينتهي : 20-06-2012
عدد الضغطات : 10,051
ينتهي : 25-12-2012عدد الضغطات : 1,927

العودة   منتدى المعالي > العالم الرقمي > منتدى الحاسب الآلي و ورشة الصيانة والاستفسارات > فريق التعلم الذاتي لبناء المواقع

موضوع مغلق
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 25-10-2008, 04:50 PM   #1





twinkle is on a distinguished road



افتراضي JavaScript ( الدرس التاسع ) : JS RegExp & JS HTML DOM


بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته


عودا حميدا لفريقنا الفتي

أسأل الله تعالى أن يزيدنا علما ويباركه لنا وأن ينفعنا بما تعلمناه ... إنه على ذلك قدير



اليوم بإذن الله سنستكمل الجزئية الأخيرة من سلسلة دروس JS Objects وهما:

JS RegExp و JS HTML DOM

ووثم سنبدأ في سلسلة الدروس المتقدمة للغة جافاسكريبت JS Advanced



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


نحن هدفنا التعلم وفهم اللغة ،، لا إنهاء الدروس


فإلى الدرس



التعديل الأخير تم بواسطة twinkle ; 20-11-2008 الساعة 12:35 AM.
twinkle غير متواجد حالياً
 
   
إظهار / إخفاء الإعلانات 
منتديات مسلمة النسائية مساحة إعلانيه
قديم 25-10-2008, 04:51 PM   #2





twinkle is on a distinguished road



افتراضي



JavaScript RegExp Object

يستخدم الكائن RegExp لتحديد ما الكلمة التي تريد البحث عنها في النص



=*=*=*=*=



ما هو RegExp ؟

الـ RegExp هو اختصار لجملة Regular Expresion

حينما تبحث داخل نص، يمكنك استخدام باترن (أو نموذج مصغر) لتصف ما الذي تبحث عنه.
الكائن RegExp هو هذا الباترن
أي أن الكائن RegExp يحتفظ بنموذج أو نسخة من الكلمة المراد البحث عنها


=*=*=*=*=


هناك نوعين من الباترن:

1) الباترن البسيط ، وهو الذي يتكون من محرف "Character" واحد (المحرف هم اسم يطلق على الحرف ، الرقم ، الرمز .... إلخ ويسمى باللغة الإنجليزية Character)
2) الباترن المعقد، وهو الذي يتكون من أكثر من محرف

كلما ازداد عدد المحارف كلما ازداد تعقد الباترن

الباترن المعقد يستعمـل للتحليل , المقـارنة , والتأكد من صحة المدخلات " Format checking " و الاستبدال , و غيــــرهــا ..~

يمكنك أن تحدد مكان النص الذي تريد لابحث عنه ، ونوع الرموز التي تبحث عنها وغيرها


=*=*=*=*=


تعريف الكائن RegExp

هو كائن يستخدم لحفظ باترن البحث (باترن البحث هو نموذج أو نسخة من الكلمة المراد البحث عنها)

يستخدم تعريف الكائن RegExp مع تعريف الباترن



=*=*=*=*=



الكود التالي يعرف الكائن المسمى بـ patt1 مع الباترن e

كود PHP:

var patt1=new RegExp("e");

When you use this RegExp object to search in a stringyou will find the letter "e"
كما هو الموضح في الكود، أعطي باترن للكائن patt1 وهو e ،، أي أن الباترن e هو النص المراد البحث عنه



=*=*=*=*=



طرق الكائن RegExp (الطرق هي نوع من أنواع الدوال)

للكائن RegExp 3 طرق:
1) test()
2) exec()
3) compile()




=*=*=*=*=



كيفية تعريف الكائن:

var اسم الكائن = new RegExp ("الباترن");


كيفية استخدام الطريقة:

اسم الكائن.اسم الطريقة ("النص");




=*=*=*=*=



1) test()

الطريقة test() تبحث عن قيمة محددة ، هل هي موجودة في النص أم لا
وتعود بـ True إن كانت موجودة أو False إن كانت غير موجودة



مثال

كود PHP:

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free")); 
حينما يكون الباترن e موجود داخل النص، ناتج الطريقة سيكون:

كود PHP:
true 
جربها بنفسك



=*=*=*=*=



2) exec()

الطريقة exec تبحث عن قيمة محددة في النص، وتعود بأول نتيجة تطابق الباترن
وإن لم تجد شيئا تعود بالقيمة الفارغة NULL

المثال الأول:

كود PHP:

var patt1=new RegExp("e");

document.write(patt1.exec("The best things in life are free")); 
حينما يكون الباترن e موجود داخل النص، ناتج الطريقة سيكون:

كود PHP:

جربها بنفسك



المثال الثاني:

يمكنك وضع معامل للكائن (بجوار الباترن "الحرف المراد البحث عنه") لتخصص بحثك أكثر.
مثلا،، حتى تجد جميع النتائج المطابقة للباترن (وليست أول نتيجة كما هو معروف للطريقة exec())، يمكنك استخدام المعامل g وهو يرمز إلى كلمة global (أي عالمي)



للحصول على قائمة متكاملة عن كيفية التعديل في صيغة البحث للحصول على إمكانيات أكبر، راجع الرابط التالي:

complete RegExp object reference


عند استخدام المعامل g ، فإن الطريقة exec() ستعمل بالشكل التالي:

* تبحث عن أول نتيجة تطابق الباترن، وتحتفظ بموقعه
* عند تشغيل الطريقة exec() مرة أخرى ستبدأ عملية البحث من الموقع المحفوظ (أي أن البحث لا يبدأ من البداية) لتبحث عن ثاني نتيجة تطابق فيها الباترن، ومن ثم تحتفظ بموقعه ، وهكذا ...


كود PHP:

var patt1=new RegExp("e","g");
do
{
result=patt1.exec("The best things in life are free");
document.write(result);
}
while (
result!=null
عند تطبيق الكود السابق ستكون النتيجة هي:
كود PHP:
eeeeeenull 
جربها بنفسك



=*=*=*=*=


3) compile()

تستخدم الطريقة compile() لتغيير الباترن (الكلمة المراد البحث عنها) للكائن RegExp


الطريقة compile() يمكنها عمل:
1) تغير الباترن
2) إضافة باترن أو حذف باترن

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



مثال:

كود PHP:

var patt1=new RegExp("e");

document.write(patt1.test("The best things in life are free"));

patt1.compile("d");

document.write(patt1.test("The best things in life are free")); 
حينما يطبق الكود السابق، سنجد أن الباترن e موجود بينما الباترن d غير موجود، لذلك ستكون النتيجة:

كود PHP:
truefalse 

جربها بنفسك




=*=*=*=*=




Complete RegExp Object Reference

للحصول على المرجع الكامل لجميع الخصائص والطرق المستخدمة مع الكائن RegExp، راجع الرابط التالي:

complete RegExp object reference

المرجع يحتوي على شرح بسيط وأمثلة لكل خاصية وطريقة.

أي أننا تعرفنا اليوم على 3 طرق فقط تقوم بالبحث عن كلمة وتحدد إن كانت موجودة أم لا، وتظهرها إن كانت موجودة أو تظهر NULL في حال عدم جودها، أو تغير من الباترن في كل مرة

لكن هناك خصائص أكثر فائدة ومرونة مما تجعل عملية البحث أفضل ونتائجها أكثر فائدة،، وهي موجودة في الرابط أعلاه


twinkle غير متواجد حالياً
 
   
قديم 25-10-2008, 04:52 PM   #3





twinkle is on a distinguished road



افتراضي

JavaScript HTML DOM Objects

إضافة إلى الكائنات الداخلية في الجافا سكريبت، يمكنك الوصول ومعالجة كل كائنات الـ HTML DOM بالجافا سكريبت


=*=*=*=*=


More JavaScript Objects

في الروابط التالية معلومات وشروحات أكثر بخصوص الكائنات ومجموعاتها وخصائصها والطرق والأحداث
(انقر على مسمى الكائن لتعرض شرحا أكثر تفصيلا له)


الكائن --------------> شرح الكائن
Window --------> هو الكائن الأعلى مستوى من هرم الجافا سكريبت. ويمثل كائن الـ Window المتحكم في المتصفح. كائن الـ Window يتم إنشاؤه تلقائيا لكل حالة من حالات الوسم <body> و <frameset>
Navigator ------> يحتوي على معلومات عن متصفح الزائر
Screen ----------> يحتوي على معلومات عن شاشة المتصفح
History ---------> يحتوي على الورابط التي تم زيارتها في متصفح النافذة
Location --------> يحتوي على معلومات عن الرابط الحالي


=*=*=*=*=


HTML DOM:

HTML DOM هو معيار W3C وهو اختصار لـ the Document Object Model for HTML

يعرف HTML DOM مجموعة معيارية (قياسية) لكائنات HTML، وطرق قياسية للوصول ومعالجة مستندات الـ HTML

جميع عناصر HTML، وماتحتويه من نصوص وخصائص، يمكنها الوصول خلال المعيار DOM
يمكن للمحتويات أن تحذف أو تعدل، ويمكن إن تنشأ عناصر HTML جديدة

HTML DOM لها اللغة ومنصة العمل (نوع نظام التشغيل) مستقلة




يمكن من خلال الروابط التالية الحصول على معلومات أكثر عن كيفية الوصول ومعالجة كل كائن DOM عن طريق الجافا سكريبت:
(انقر على مسمى الكائن لتعرض شرحا أكثر تفصيلا له)

الكائن ---------------> الشرح
Document -----> تشرح كل وثائق ومستندات الـHTML، ويمكن استخدامها للوصول إلى جميع عناصر الصفحة
Anchor ----------> تمثل عنصر الروابط <a>
Area --------------> تمثل عنصر المساحة <area> الموجودة في خريطة الصور
Base ----------> تمثل عنصر <base>
Body ----------> تمثل عنصر <body>
Button ----------> تمثل عنصر <button>
Event ----------> تمثل حالة العنصر
Form ----------> تمثل عنصر <form>
Frame ----------> تمثل عنصر <frame>
Frameset ----------> تمثل عنصر <frameset>
Iframe ----------> تمثل عنصر <iframe>
Image ----------> تمثل عنصر <img>
Input button ----------> تمثل الزر في نموذج HTML
Input checkbox ----------> تمثل مربع الخيار المتعدد في نموذج HTML
Input file ----------> تمثل إداة رفع الملفات في نموذج HTML
Input hidden ----------> تمثل الحقول المخفية في نموذج HTML
Input password ----------> تمثل حقل كلمة المرور في نموذج HTML
Input radio ----------> تمثل دائرة الخيار الوحيد في نموذج HTML
Input reset ----------> تمثل زر Reset في نموذج HTML
Input submit ----------> تمثل زر Submit في نموذج HTML
Input text ----------> تمثل حقل إدخال النص في نموذج HTML
Link ----------> تمثل عنصر <link>
Me ta ----------> تمثل عنصر <me ta>
Option ----------> تمثل عنصر <options>
Select ----------> تمثل قائمة الخيارات المنسدلة في نموذج HTML
Style ----------> تمثل جملة style مفردة
Table ----------> تمثل عنصر <table>
TableData ----------> تمثل عنصر <td>
TableRow ----------> تمثل عنصر <tr>
Textarea ----------> تمثل عنصر <textarea>





ملاحظة:
رابط الكائن me ta لا يعمل ،، لأنه يظهر هكذا:
كود PHP:
http://www.w3schools.com/htmldom/dom_obj_****.asp 
قوموا فقط بحذف النجوم واستبدالها بكلمة me ta (بدون مسافة)

twinkle غير متواجد حالياً
 
   
قديم 25-10-2008, 04:53 PM   #4





twinkle is on a distinguished road



افتراضي

الواجب:

نريد استخراج جميع تكرارات حرف n فيما يلي:

mnmmnmmnmmmnmmmmmmnmmnmmmmnmmmnmmmnmmmmn mmmnmmmmn


فما هي أنسب طريقة من طرق الكائن RegExp لاستخراجها؟

اكتب الكود الذي يستخرج حروف الـ n من الجملة السابقة.

twinkle غير متواجد حالياً
 
   
قديم 25-10-2008, 06:37 PM   #5
 
الصورة الرمزية أم يوسف





أم يوسف is on a distinguished road



افتراضي


وعليكم السلام ورحمة الله وبركاته..

جزاكم الله خيراً..

تمت القراءة وجاري الاستيعاب : )..

أم يوسف غير متواجد حالياً
 
   
قديم 25-10-2008, 09:21 PM   #6





twinkle is on a distinguished road



افتراضي

بارك الله فيك وبإذن الله لن تطول مدة الاستيعاب =)

وإن كان هناك أي لبس أو صعوبة فأنتظرك

twinkle غير متواجد حالياً
 
   
قديم 26-10-2008, 07:24 PM   #7
 
الصورة الرمزية S a R a





S a R a is on a distinguished road



افتراضي

جاري القراءة ..
جزيت الجنااان ..

S a R a غير متواجد حالياً
 
   
قديم 26-10-2008, 07:35 PM   #8
 
الصورة الرمزية ريفــــــــــــــــان





ريفــــــــــــــــان is on a distinguished road



افتراضي

. .


ما شاء الله يبدو ممتعاً . .

بارك الله فيك . . تونكل

لي عودة بعد دراسته وحل الواجب . .

بإذن الله

. .

ريفــــــــــــــــان غير متواجد حالياً
 
   
قديم 26-10-2008, 08:46 PM   #9
 
الصورة الرمزية أم يوسف





أم يوسف is on a distinguished road



افتراضي

الواجب..

كود PHP:
<html>
<
body>
<
script type="text/javascript"
var 
pat1=new RegExp("n","g");
do
{
result=pat1.exec("mnmmnmmnmmmnmmmmmmnmmnmmmmnmmmnmmmnmmmmn mmmnmmmmn");
document.write(result);
}
while(
result!=null)
</script> 
</body>
</html> 

أم يوسف غير متواجد حالياً
 
   
قديم 26-10-2008, 11:19 PM   #10





twinkle is on a distinguished road



افتراضي

جزاكم الله خيرا


ننتظر تطبيقكم





أ.أم يوسف،، وفقك الله ،،،

حل ممتاز

بوركتِ


twinkle غير متواجد حالياً
 
   
قديم 28-10-2008, 05:54 PM   #11





twinkle is on a distinguished road



افتراضي

أين البقية ؟

إن كان هناك غموض أو إشكال فمستعدة لإعادة شرحه


twinkle غير متواجد حالياً
 
   
قديم 31-10-2008, 06:06 PM   #12
 
الصورة الرمزية S a R a





S a R a is on a distinguished road



افتراضي

اسفة تونكل .. هاليومين انشغلت ان شاء الله بكرة اقرااه مرة ثانية بتمعن واحاول احل الواجب...

S a R a غير متواجد حالياً
 
   
قديم 31-10-2008, 11:22 PM   #13





twinkle is on a distinguished road



افتراضي

بوركتِ أ.سارة

انتظر ردك وتطبيقك

twinkle غير متواجد حالياً
 
   
قديم 01-11-2008, 11:41 PM   #14
 
الصورة الرمزية زهرة البيلسان





زهرة البيلسان has a brilliant futureزهرة البيلسان has a brilliant future
زهرة البيلسان has a brilliant future



افتراضي



المعذرة !

الايام الماضية كنت قمة في الانشغال !

لعلي أعود بعد ترتيب الوضع ..



شكراً توينكل ,

الله يجزاك الجنة ..


زهرة البيلسان غير متواجد حالياً
 
   
قديم 02-11-2008, 01:47 AM   #15





twinkle is on a distinguished road



افتراضي

وفقكِ الله

أنتظر عودتك وتطبيقك

twinkle غير متواجد حالياً
 
   
قديم 02-11-2008, 03:54 AM   #16
 
الصورة الرمزية ريفــــــــــــــــان





ريفــــــــــــــــان is on a distinguished road



افتراضي

. .



بارك الله فيك . .

الواجب سهل جداً وممتع


كود PHP:
<html>
<
body>
<
script type="text/javascript"
var 
reevan=new RegExp("n","g");
do
{
result=reevan.exec("mnmmnmmnmmmnmmmmmmnmmnmmmmnmmmnmmmnmmmmn mmmnmmmmn");
document.write(result);
}
while(
result!=null)
</script> 
</body>
</html> 

. .

ريفــــــــــــــــان غير متواجد حالياً
 
   
قديم 02-11-2008, 04:04 AM   #17
 
الصورة الرمزية ريفــــــــــــــــان





ريفــــــــــــــــان is on a distinguished road



افتراضي

المشاركة الأصلية كتبت بواسطة twinkle مشاهدة المشاركة



يمكن من خلال الروابط التالية الحصول على معلومات أكثر عن كيفية الوصول ومعالجة كل كائن DOM عن طريق الجافا سكريبت:
(انقر على مسمى الكائن لتعرض شرحا أكثر تفصيلا له)

الكائن ---------------> الشرح
Document -----> تشرح كل وثائق ومستندات الـHTML، ويمكن استخدامها للوصول إلى جميع عناصر الصفحة
Anchor ----------> تمثل عنصر الروابط <a>
Area --------------> تمثل عنصر المساحة <area> الموجودة في خريطة الصور
Base ----------> تمثل عنصر <base>
Body ----------> تمثل عنصر <body>
Button ----------> تمثل عنصر <button>
Event ----------> تمثل حالة العنصر
Form ----------> تمثل عنصر <form>
Frame ----------> تمثل عنصر <frame>
Frameset ----------> تمثل عنصر <frameset>
Iframe ----------> تمثل عنصر <iframe>
Image ----------> تمثل عنصر <img>
Input button ----------> تمثل الزر في نموذج HTML
Input checkbox ----------> تمثل مربع الخيار المتعدد في نموذج HTML
Input file ----------> تمثل إداة رفع الملفات في نموذج HTML
Input hidden ----------> تمثل الحقول المخفية في نموذج HTML
Input password ----------> تمثل حقل كلمة المرور في نموذج HTML
Input radio ----------> تمثل دائرة الخيار الوحيد في نموذج HTML
Input reset ----------> تمثل زر Reset في نموذج HTML
Input submit ----------> تمثل زر Submit في نموذج HTML
Input text ----------> تمثل حقل إدخال النص في نموذج HTML
Link ----------> تمثل عنصر <link>
Me ta ----------> تمثل عنصر <me ta>
Option ----------> تمثل عنصر <options>
Select ----------> تمثل قائمة الخيارات المنسدلة في نموذج HTML
Style ----------> تمثل جملة style مفردة
Table ----------> تمثل عنصر <table>
TableData ----------> تمثل عنصر <td>
TableRow ----------> تمثل عنصر <tr>
Textarea ----------> تمثل عنصر <textarea>

هذا الجزء مهم جداً جداً . .

يعطي المبرمج حرية أكبر في التعديل على الموقع . .

يحتاج دراسة بتركيز . .

. .

ريفــــــــــــــــان غير متواجد حالياً
 
   
قديم 02-11-2008, 10:54 PM   #18





twinkle is on a distinguished road



افتراضي

بارك الله فيكم أ.ريفان

حل متميز



أعلم بأن الجزئية الثانية مهمة جدا

بل وتحتاج إلى عدة دروس لشرح كل أمر فيه وتفصيله

حيث أن كل أمر تندرج تحته عدة أوامر،، وهذه الأوامر تزيد من تحكم المبرمج بالصفحة بشكل قوي


وأرى فيها قوة الجافاسكريبت


لعل بالعمر بقية بإذن الله لنفصل فيها ولو لأهم الأوامر

twinkle غير متواجد حالياً
 
   
قديم 03-11-2008, 05:24 AM   #19
 
الصورة الرمزية ريفــــــــــــــــان





ريفــــــــــــــــان is on a distinguished road



افتراضي




،
--------

بارك الله فيك .. ما قصرتِ

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

يحاول فهمها والتجربة بالأمثلة . .

ثم إذا حان وقت المشروع نعود لمراجعتها معاً . .


--------

[ سبحان الله وبحمده ،، سبحان الله العظيم ]
،

ريفــــــــــــــــان غير متواجد حالياً
 
   
قديم 04-11-2008, 12:44 AM   #20
 
الصورة الرمزية الهدهده





الهدهده is on a distinguished road



افتراضي

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

حل الواجب :


كود PHP:
<html>
<
body>

<
script type="text/javascript">
var 
str "mnmmnmmnmmmnmmmmmmnmmnmmmmnmmmnmmmnmmmmnmmmnmmmmn";
var 
patt = new RegExp("n","g");
do
{
var 
result patt.exec(str);
document.write(result);
}while(
result!=null)

</script>

</body>
</html> 
واستخدمت الطريقة الأخرى في تعريق كائن RegExp كما في الموقع (زيادة شطارة )
كود PHP:
<html>
<
body>

<
script type="text/javascript">
var 
str "mnmmnmmnmmmnmmmmmmnmmnmmmmnmmmnmmmnmmmmnmmmnmmmmn";
var 
pat=/n/g;
do
{
var 
result pat.exec(str);
document.write(result);
}while(
result!= null)

</script>

</body>
</html> 
ولي عودة إذا اشكل علينا شي أ.تونكل

الهدهده غير متواجد حالياً
 
   
موضوع مغلق

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
الأعضاء الذين قرؤوا الموضوع منذ 30 يوم ( أيام ) : 0 .
الموضوع لم يُقرأ بعد
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن 06:30 PM.