Σε JavaScript, ποια είναι η διαφορά μεταξύ indexOf () και αναζήτηση ();

ψήφοι
145

Όντας αρκετά νέα για να το JavaScript, είμαι σε θέση να διακρίνει πότε να χρησιμοποιήσει κάθε ένα από αυτά.

Μπορεί κανείς να βοηθήσει να διευκρινίσει αυτό για μένα;

Δημοσιεύθηκε 09/12/2008 στις 21:25
πηγή χρήστη
Σε άλλες γλώσσες...                            


8 απαντήσεις

ψήφοι
167

Αν χρειάζεστε μια κανονική έκφραση, χρησιμοποιούν search(). Διαφορετικά, indexOf()θα είναι ταχύτερη.

Απαντήθηκε 09/12/2008 στις 21:29
πηγή χρήστη

ψήφοι
28

indexOfείναι για απλό συμβολοσειρές, searchμπορεί να κάνει κανονικές εκφράσεις.

Απαντήθηκε 09/12/2008 στις 21:28
πηγή χρήστη

ψήφοι
12

Η λειτουργία αναζήτησης ( μια περιγραφή εδώ ) παίρνει μια κανονική έκφραση, η οποία σας επιτρέπει να ταιριάξει με πιο εξελιγμένα ομιλίες, διάκριση πεζών-κεφαλαίων χορδές, κλπ, ενώ indexOf ( μια περιγραφή εδώ ) ταιριάζει απλά μια κυριολεκτική κορδόνι. Ωστόσο, indexOf σας επιτρέπει επίσης να καθορίσετε ένα δείκτη αρχή.

Απαντήθηκε 09/12/2008 στις 21:31
πηγή χρήστη

ψήφοι
7

Νομίζω ότι η κύρια διαφορά είναι ότι η αναζήτηση δεχθεί κανονικές εκφράσεις.

Ελέγξτε αυτή την αναφορά:

Απαντήθηκε 09/12/2008 στις 21:30
πηγή χρήστη

ψήφοι
3

IndexOf () - αποδέχεται κατεξοχήν συμβολοσειρά ή αντικείμενα εγχόρδων, αλλά όχι κανονικές εκφράσεις. Δέχεται επίσης μηδενική βάση ακέραια τιμή να ξεκινήσετε την αναζήτησή του από, για παράδειγμα:

  1. "Babyelephant" .indexOf ( "e")? // σας δίνει 4
  2. "Babyelephant" .indexOf ( "e", 5)? // σας δίνει 6, όπως η αναζήτηση ξεκινά από την 6η θέση ή 5η δείκτη.
  3. var m = / e /? "Babyelephant" .indexOf (m)? // δίνει -1 καθώς διαιτητή δέχεται κανονικές εκφράσεις.

Αναζήτηση () - δέχεται και τα δύο κατεξοχήν συμβολοσειρά ή αντικείμενα string και κανονικές εκφράσεις. Αλλά δεν αποδέχεται έναν δείκτη για να ξεκινήσει η αναζήτηση από.

Απαντήθηκε 05/09/2016 στις 14:20
πηγή χρήστη

ψήφοι
2

Αναζήτηση βρίσκει ταιριάζει με μια κανονική έκφραση, αλλά δεν έχει αντισταθμιστικά οφέλη. IndexOf χρησιμοποιεί κατεξοχήν να ταιριάζει, αλλά έχει μια μετατόπιση.

IndexOf

Ψάξιμο

Απαντήθηκε 09/12/2008 στις 21:32
πηγή χρήστη

ψήφοι
0

indexOf () και αναζήτηση ()

  • κοινά και στις δύο

    i) να επιστρέψει η πρώτη εμφάνιση του έψαξε αξίας

    ii) την επιστροφή -1 αν βρεθεί καμία αντιστοιχία

    let str='Book is booked for delivery'
    str.indexOf('b')   // returns position 8
    str.search('b')    // returns position 8 
    

  • ειδικά σε indexOf ()

    i) μπορείτε να δώσετε αρχική θέση αναζήτησης ως δεύτερο επιχείρημα

    str.indexOf('k')   // 3
    str.indexOf('k',4) // 11 (it start search from 4th position) 
    

  • ειδικά σε αναζήτηση ()

αξίας αναζήτηση μπορεί να είναι κανονική έκφραση

str.search('book') // 8
str.search(/book/i)  // 0   ( /i =case-insensitive   (Book == book)

αναφορά

Απαντήθηκε 22/04/2019 στις 15:15
πηγή χρήστη

ψήφοι
0

Χωρίς regex , δεν υπάρχει καμία πρακτική διαφορά μεταξύ indexOf και αναζήτησης .

Το παρακάτω παράδειγμα δίνει μια ζωντανή επίδειξη :

function FromSearch() {

  var str = document.getElementById("demo").innerText;
  var n = str.search("difference");
  document.getElementById("Location").innerHTML = n;
}

function FromindexOf() {
  var str = document.getElementById("demo").innerText;
  var n = str.indexOf("difference");
  document.getElementById("Location").innerHTML = n;
}
<p id="demo">Without a <a href='http://www.w3schools.com/js/js_regexp.asp'>regex</a>, there is no practical difference between <a href='http://www.w3schools.com/jsref/jsref_indexof.asp'>indexOf</a> and <a href='http://www.w3schools.com/jsref/jsref_search.asp'>search</a>
</p>

<button onclick="FromSearch()">From search</button>

<button onclick="FromindexOf()">From indexOf</button>

<p>Location of difference in the above sentence is:</p>

<mark id="Location"></mark>

Απαντήθηκε 15/12/2015 στις 07:02
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more