البحث عن نص بداخل النص
تستخدم الدالة idexOf، والدالة lastIndexOf في البحث عن نص بداخل النص، وكل دالة من هذه الدوال يوضع بين قوسيها معاملين، المعامل الأول هو النص الذي تريد البحث عنه، والمعامل الثاني هو النص الذي تريد البحث بداخله وإذا ما قمت بوضع المعامل الأول فقط وهو الخاص بالنص الذي تريد البحث عنه، ولم تقم بوضع المعامل الثاني وهو النص الذي تريد البحث بداخله قامت الدالة بعملية البحث في النص كله من أوله لآخره، وتعود الدالة idexOf، والدالة lastIndexOf برقم يمثل ترتيب النص الذي تريد البحث عنه بداخل النص الذي تريد البحث بداخله، فعلى سبيل المثال تعود الدالة بالقيمة 0 إذا كان النص الذي تريد البحث عنه يقع في بداية النص تريد البحث بداخله، لأن ترتيب الحروف في النص يبدأ بالصفر، وفي حالة عدم وجود النص الذي تبحث عنه في النص الذي تبحث بداخله تعود الدالة بالقيمة -1.
والإسكريبت التالي يوضح كيفية استخدام الدالة indexOf في البحث عن النصوص بداخل نصوص أخرى.
<script language= “javaScript” type=”text/javascript”>
var myString = “Hello mohamed. How are you Mohamed”;
var foundAtPosition;
foundAtPosition = myString.indexOf(“Mohamed”);
alert(foundAtPosition);
</script>
والإسكريبت السابق يطلب معرفة ترتيب كلمة Mohamed في داخل النص Hello Mohamed.How are you Mohamed ويقوم بطباعة الناتج والذي هو عبارة عن ترتيب هذه الكلمة في النص في رسالة تحذير، وتكون النتيجة هي ظهور رسالة تحذير تحمل رقم 24 كترتيب للكلمة التي تبحث عنها في النص، وقد تجاهلت الدالة كلمة mohamed الموجودة في بداية النص حيث أن الكلمة التي نبحث عنها هي Mohamed والتي تبدأ بحرف كبير والموجودة في آخر النص.
والفارق بين الدالة indexOf، وبين الدالة lastIndex هو أن الأولى تبدأ البحث من بداية النص، أما الثانية فهي تبدأ البحث من نهاية النص، وفيما يلي إعادة للإسكريبت السابق ولكن باستخدام الدالة lastIndexOf لنتعرف على الفرق بين الطريقة التي تعمل بها كل دالة.
<script language= “JavaScript” type=”text/javascript”>
Var myString= “Hello Mohamed. How are you Mohamed”;
Var foundAtPosition;
foundAtPosition = myString.indexOf(“Mohamed”);
alert(foundAtPosition);
foundAtPosition = myString.lastIndexOf(“Mohamed”);
alert(foundAtPosition);
</script>
لاحظ أن كلمة mohamed مكتوبة في الإسكريبت مرتين وتبدأ بحرف كبير في المرتين، وتكون نتيجة الإسكريبت السابق هو ظهور رسالتين تحذير الأولى تحمل الرقم6، والتي استخدمت في البحث الدالة indexOf، والثانية تحمل الرقم 27 والتي استخدمت في البحث الدالة lastIndexOf، التي تقوم في البحث في النص من الآخر إلى الأول.