logo

ההבדל בין indexof לחיפוש ב-JavaScript

מבוא:

JavaScript היא שפת תכנות בשימוש נרחב, והיא מספקת מספר שיטות מובנות לתפעול מחרוזות. שתיים מהשיטות הנפוצות ביותר לחיפוש במחרוזת אחר תו או מחרוזת משנה ספציפיים הן אינדקס של() ו לחפש() . למרות ששתי השיטות הללו עשויות להיראות דומות בפונקציונליות, יש להן כמה הבדלים עיקריים. במאמר זה, נחקור את ההבדלים בין indexOf() ל-search() ב-JavaScript.

שיטת indexOf():

ה אינדקס של() שיטה היא פונקציית JavaScript מובנית המשמשת למציאת האינדקס של המופע הראשון של מחרוזת משנה בתוך מחרוזת נתונה. שיטה זו מחזירה את האינדקס של ההופעה הראשונה של המחרוזת המשנה שצוינה, החל מתחילת המחרוזת. אם המחרוזת לא נמצאת, השיטה חוזרת -1 .

תחביר:

התחביר לשימוש ב- אינדקס של() השיטה היא כדלקמן:

 string.indexOf(searchValue[, fromIndex]) 

כאן, חוּט היא המחרוזת שיש לחפש, searchValue הוא הערך שיש לחפש, ו מתוך אינדקס הוא הפרמטר האופציונלי המציין את המיקום במחרוזת שבו צריך להתחיל החיפוש. אם ה מתוך אינדקס לא מסופק, ה אינדקס של() השיטה מתחילה את החיפוש מתחילת המחרוזת. אם מתוך אינדקס הוא שלילי ערך, החיפוש מתחיל מסוף המחרוזת.

דוגמא:

איחוד מול איחוד כולם

בואו ניקח דוגמה כדי להבין את אינדקס של() שיטה:

 let str = 'JavaScript is a powerful programming language'; let index = str.indexOf('powerful'); console.log(index); 

תְפוּקָה:

 16 

הֶסבֵּר:

הנה ה שיטת indexOf(). מחפש את המופע הראשון של המילה 'חָזָק' במחרוזת 'JavaScript היא שפת תכנות חזקה' . מאז המילה 'חָזָק' מופיע באינדקס 16 , השיטה חוזרת 16 .

שיטת חיפוש():

ה שיטת חיפוש(). היא גם פונקציית JavaScript מובנית המשמשת למציאת האינדקס של התו הראשון של מחרוזת משנה בתוך מחרוזת נתונה. שיטה זו מחזירה את האינדקס של ההופעה הראשונה של המחרוזת המשנה שצוינה, החל מתחילת המחרוזת. אם המחרוזת לא נמצאת, השיטה חוזרת -1 .

תחביר:

התחביר לשימוש ב- שיטת חיפוש(). הוא כדלקמן:

 string.search(regexp) 

כאן, חוּט היא המחרוזת שיש לחפש, ו ביטוי רגולרי האם ה הבעה רגילה דפוס לחיפוש. אם ה הבעה רגילה נמצא דפוס, ה לחפש() השיטה מחזירה את האינדקס של התו הראשון של ההתאמה. אם תבנית הביטוי הרגולרי לא נמצא, השיטה חוזרת -1 .

דוגמא:

בואו ניקח דוגמה כדי להבין את לחפש() שיטה:

 let str = 'JavaScript is a powerful programming language'; let index = str.search(/powerful/); console.log(index); 

תְפוּקָה:

 16 

הֶסבֵּר:

הנה ה לחפש() השיטה מחפשת את הבעה רגילה תבנית /חָזָק/ במחרוזת 'JavaScript היא שפת תכנות חזקה' . מכיוון שתבנית הביטוי הרגולרי תואמת למילה 'חָזָק' , השיטה חוזרת 16 .

הבדלים בין indexOf() לחיפוש():

למרות שניהם אינדקס של() ו לחפש() שיטות משמשות לחיפוש אחר מחרוזת משנה בתוך מחרוזת נתונה, יש להן כמה הבדלים עיקריים. בואו נסתכל על ההבדלים הללו זה לצד זה:

שיטת indexOf() שיטת החיפוש ().
אינדקס של() השיטה מחפשת תת-מחרוזת שצוינה בתוך מחרוזת נתונה. לחפש() השיטה מחפשת דפוס ביטוי רגולרי בתוך מחרוזת נתונה.
השיטה indexOf() מחזירה את האינדקס של ההופעה הראשונה של המחרוזת המשנה שצוינה. שיטת search() מחזירה את האינדקס של התו הראשון של ההתאמה.
השיטה indexOf() אינה תומכת בביטויים רגולריים. שיטת search() תומכת בביטויים רגולריים.
השיטה indexOf() יכולה לקבל פרמטר אופציונלי מ-Index כדי להתחיל את החיפוש מאינדקס ספציפי. שיטת search() אינה מקבלת פרמטר אופציונלי לתחילת החיפוש מאינדקס ספציפי.
השיטה indexOf() מהירה יותר משיטת search() מכיוון שהיא אינה תומכת בביטויים רגולריים. שיטת החיפוש() איטית יותר משיטת indexOf() מכיוון שהיא תומכת בביטויים רגולריים.
שיטת indexOf() היא תלוית רישיות. שיטת search() היא גם תלוית רישיות כברירת מחדל, אך ניתן להפוך ללא רגישות רישיות באמצעות ה- /i דגל בתבנית הביטוי הרגולרי.
שיטת indexOf() נמצאת בשימוש נרחב עבור חיפושי מחרוזת פשוטים. שיטת search() נמצאת בשימוש נרחב עבור התאמת דפוסים מורכבים באמצעות ביטויים רגולריים.

סיכום:

לסיכום, שניהם אינדקס של() ו לחפש() שיטות שימושיות לחיפוש אחר מחרוזת משנה בתוך מחרוזת נתונה. עם זאת, יש להם כמה הבדלים עיקריים שהופכים אותם למתאימים למקרי שימוש שונים. שיטת indexOf() מהירה יותר ומתאימה יותר לחיפושי מחרוזת פשוטים, בעוד ששיטת search() תומכת בביטויים רגולריים ומתאימה יותר להתאמת דפוסים מורכבים. חשוב לבחור את השיטה המתאימה על סמך הדרישות הספציפיות של התוכנית שלך.