البحث في النصوص - JavaScript String Search
-
بنحكي في هذا الدرس على كيفية البحث في string باستخدام لغة JavaScript.
بنحكي في هذا الدرس عن الطرق Methods التالية:
- ()String indexOf
- ()String lastIndexOf
- ()String search
- ()String match
- ()String includes
- ()String startsWith
- ()String endsWith
طريقة indexOf
هنا يتم ارجاع مكان او فهرس (position) التواجد الأول للنص المطلوب البحث عنه في السلسلة:
مثال :
طبق الكود التالي في صفحة HTML
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak";
document.write( text.indexOf("lareen"));
document.write("<br>");
</script>
</body>
</html>

طريقة lastIndexOf
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak lareen";
document.write( text.lastIndexOf("lareen"));
document.write("<br>");
</script>
</body>
</html>
النتيجة:
لاحظ ان تم ارجاع مكان كلمة lareen الثانية لأنها مكررة مرتين في النص. اذا ما كانت مكرره بتكون النتيجة نفس النتيجة في indexOf
الطريقتين indexOf و lastIndexOf ترجع القيمة -1 في حال كان النص موجود.
مثال
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak lareen";
document.write( text.lastIndexOf("Jordan"));
document.write("<br>");
</script>
</body>
</html>
النتيجة:
النتيجة -1 لان كلمة Jordan مش موجودة في النص.
ارسال parameter مع طريقة lastIndexOf
في حال ارسال parameter مع طريقة lastIndexOf فهذا يعني ان البحث بتم بشكل عكسي. من النهاية الى البداية.
مثال:
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.lastIndexOf("lareen",15));
document.write("<br>");
</script>
</body>
</html>
النتيجة :
الفرق بين هذه النتيجة والنتيجة السابقة ان هون تم البحث من الموقع رقم 15 الى البداية وبالتالي رجع مكان كلمة lareen من البداية فا مكان اول حرف من كلمة lareen من بداية الجملة يساوي 6. على عكس الطريقة السابقة الي كانت بتم من بداية النص حتى النهاية وكان مكان اول حرف من كلمة lareen في الموقع رقم 18
طريقة ()String search
في هذه الطريقة يتم البحث عن نص معين داخل السلسلة النصية وتعيد موضع المطابقة position of the match:
مثال :
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.search("lareen"));
document.write("<br>");
</script>
</body>
</html>
النتيجة:
اكيد لاحظت ان الطريقتين ()indexOf و()search لهم نفس النتيجة. حيث كلاهما يقبل نفس arguments (parameters) ويعيد نفس النتيجة.
لكن اكيد الطريقتين مختلفتين عن بعض الفرق بينهم ( بنحكي عنهم بالتفصيل في درس لاحق مخصص)
طريقة ()String match
يتم في هذه الطريقة البحث عن تطابق لنص معين باستخدام التعابير regular expression، وتعيد التطابقات، مثل Array object.
شو يعني هذا الحكي.
نطبق مثال حتى نفهم الموضوع
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.match(/La/g));
document.write("<br>");
</script>
</body>
</html>
النتيجة :
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.match(/La/));
document.write("<br>");
</script>
</body>
</html>

<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.match(/La/gi));
document.write("<br>");
</script>
</body>
</html>

()String includes
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.includes("mlak"));
document.write("<br>");
</script>
</body>
</html>

()String includes مع Parameter
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.includes("mlak",14));
document.write("<br>");
</script>
</body>
</html>

طريقة ()startsWith
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.startsWith("Layan"));
document.write("<br>");
</script>
</body>
</html>

()String startsWith مع Parameter
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.startsWith("Layan",10));
document.write("<br>");
</script>
</body>
</html>

طريقة ()endsWith
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.endsWith("Layan"));
document.write("<br>");
document.write( text.endsWith("Lareen"));
document.write("<br>");
</script>
</body>
</html>

()String endsWith مع Parameter
<!DOCTYPE html>
<html>
<body onunload="">
<h3>JavaScript String search Methods</h3>
<p id="Date"></p>
<script>
let text = "Layan lareen mlak Lareen";
document.write( text.endsWith("Layan",5));
document.write("<br>");
</script>
</body>
</html>

اترك تعليقك