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

Σε αυτό το άρθρο θα προσπαθήσω να δώσω παραδείγματα και περιγραφές από τα πιο κοινά μεθόδους javascriptπου σχετίζονται με χορδές. Οι πιο δημοφιλείς μέθοδοι βρίσκονται στην κορυφή του άρθρου για ευκολία.

Μετατροπή σε συμβολοσειρά

Μπορείτε να μετατρέψετε έναν αριθμό, ένα boolean ή ένα αντικείμενο σε μια συμβολοσειρά.

var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Μπορείτε επίσης να το κάνετε αυτό με τη συνάρτηση string().

var myNumber = 24; // 24 var myString = String(myNumber); // "24"

Ο Nicholas Zakas λέει: "Εάν δεν είστε σίγουροι για την τιμή (null ή undefined), τότε χρησιμοποιήστε τη συνάρτηση String(), καθώς επιστρέφει μια συμβολοσειρά ανεξάρτητα από τον τύπο της μεταβλητής."

απροσδιόριστοςσημαίνει ότι δεν έχει εκχωρηθεί τιμή στη μεταβλητή, α μηδενικό, - ότι του έχει εκχωρηθεί η τιμή null (θα μπορούσε να πει κανείς ότι το null ορίζεται ως κενό αντικείμενο).

Διαίρεση μιας συμβολοσειράς σε υποσυμβολοσειρές

Για να διαιρέσετε μια συμβολοσειρά σε μια σειρά από υποσυμβολοσειρές, μπορείτε να χρησιμοποιήσετε τη μέθοδο split():

Var myString = "coming,part,at,the,commas"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["ερχόμενος", "χωρίς", "στο"]

Όπως δείχνει η τελευταία γραμμή, η τιμή του δεύτερου προαιρετικού ορίσματος καθορίζει τον αριθμό των στοιχείων στον πίνακα που επιστρέφεται.

Λάβετε μήκος χορδής

Με την ιδιότητα length, μπορείτε να βρείτε τον αριθμό των χαρακτήρων unicode σε μια συμβολοσειρά:

Var myString = "Είσαι πολύ χαρακτήρας."; var stringLength = myString.length; // 25

Ορίστε μια υποσυμβολοσειρά σε μια συμβολοσειρά

Υπάρχουν δύο τρόποι για να επιτευχθεί αυτό:

Χρησιμοποιήστε το indexOf():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

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

Χρησιμοποιήστε lastIndexOf():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Η μέθοδος lastIndexOf() κάνει ακριβώς το ίδιο, εκτός από το ότι αναζητά την τελευταία υποσυμβολοσειρά μέσα στη συμβολοσειρά.

Εάν η δευτερεύουσα συμβολοσειρά δεν βρεθεί, και οι δύο μέθοδοι επιστρέφουν -1. Το δεύτερο προαιρετικό όρισμα καθορίζει τη θέση στη συμβολοσειρά όπου θέλετε να ξεκινήσετε την αναζήτηση. Έτσι, εάν το δεύτερο όρισμα στη μέθοδο indexOf() είναι 5, τότε η αναζήτηση θα ξεκινήσει από τον 5ο χαρακτήρα και 0-4 χαρακτήρες θα αγνοηθούν. Για το lastIndexOf() , επίσης εάν το δεύτερο όρισμα είναι 5, η αναζήτηση θα ξεκινήσει προς τα πίσω, με τους χαρακτήρες 6 και άνω να αγνοούνται.

Πώς να αντικαταστήσετε μέρος μιας συμβολοσειράς

Για να αντικαταστήσετε μέρος (ή ακόμα και όλο) μιας συμβολοσειράς, χρησιμοποιήστε τη μέθοδο αντικατάστασης().

Var slugger = "Τζος Χάμιλτον"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Χοσέ Μπαουτίστα"

Το πρώτο όρισμα περιέχει το τμήμα της υποσυμβολοσειράς που πρέπει να αντικατασταθεί. το δεύτερο όρισμα είναι η συμβολοσειρά που θα πάρει τη θέση της υποσυμβολοσειράς που θα αντικατασταθεί. Μόνο η πρώτη παρουσία της υποσυμβολοσειράς θα αντικατασταθεί.

Για να αντικαταστήσετε όλες τις εμφανίσεις μιας υποσυμβολοσειράς, χρησιμοποιήστε κοινή έκφρασημε τη σημαία «g».

Var myString = "Πουλάει κοχύλια αυτοκινήτων στην ακτή του αυτοκινήτου"; var newString = myString.replace(/automotive/g, "sea"); αρχείο καταγραφής κονσόλας(newString); // "Πουλάει κοχύλια στην ακτή της θάλασσας"

Το δεύτερο όρισμα μπορεί να περιλαμβάνει την υποσυμβολοσειρά ή τη συνάρτηση προς αντικατάσταση.

Βρείτε έναν χαρακτήρα σε μια δεδομένη θέση

Για να μάθετε ποιος χαρακτήρας βρίσκεται σε μια δεδομένη θέση, μπορείτε να χρησιμοποιήσετε τη μέθοδο charAt():

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f"

Όπως συμβαίνει συχνά στην JavaScript, η πρώτη θέση μετράει από το 0 και όχι από το 1.

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τη μέθοδο charCodeAt(), ωστόσο, αντί για τον ίδιο τον χαρακτήρα, θα λάβετε τον κώδικά του.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Σημειώστε ότι ο κωδικός για ένα κεφαλαίο γράμμα (θέση 11) είναι διαφορετικός από τον κωδικό για το ίδιο γράμμα αλλά με πεζά (θέση 7).

συνένωση συμβολοσειρών σε javascript

Ως επί το πλείστον, θα χρησιμοποιήσετε τον τελεστή (+) για να συνδέσετε συμβολοσειρές. Αλλά μπορείτε επίσης να συνδέσετε συμβολοσειρές χρησιμοποιώντας τη μέθοδο concat().

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat("κανόνες."); // "Κανόνες ποδοσφαίρου Knibb High"

Πολλαπλές συμβολοσειρές μπορούν να περάσουν στη concat() , και θα εμφανιστούν στη συμβολοσειρά που προκύπτει με τη σειρά που προστέθηκαν στη μέθοδο concat().

VarstringOne = "Knibb"; var stringTwo = "Υψηλό"; var stringThree = "ποδόσφαιρο"; var stringFour = "κανόνες."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb υψηλοί κανόνες ποδοσφαίρου."

Μέρος μιας συμβολοσειράς (εξαγωγή δευτερεύουσας συμβολοσειράς σε javascript)

Υπάρχουν τρία διάφορους τρόπουςδημιουργήστε μια νέα συμβολοσειρά «βγάζοντας» μέρος μιας υποσυμβολοσειράς από μια υπάρχουσα συμβολοσειρά.

Χρησιμοποιώντας το slice():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

Χρησιμοποιώντας το substring():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Και για τις δύο μεθόδους (slice() και substring()), το πρώτο όρισμα είναι η θέση του χαρακτήρα από την οποία ξεκινά η υποσυμβολοσειρά (μετρώντας από το 0), το δεύτερο όρισμα είναι η θέση χαρακτήρα στην οποία τελειώνει η υποσυμβολοσειρά, με τον χαρακτήρα που ορίζεται στο δεύτερο όρισμα που δεν περιλαμβάνεται στην επιστρεφόμενη υποσυμβολοσειρά.

Χρησιμοποιώντας το substr():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Για τη μέθοδο substr, το πρώτο όρισμα καθορίζει επίσης τη θέση χαρακτήρων από την οποία ξεκινά η υποσυμβολοσειρά. Το δεύτερο όρισμα είναι προαιρετικό. Ταυτόχρονα όμως, το δεύτερο όρισμα καθορίζει τον αριθμό των χαρακτήρων που πρέπει να συμπεριληφθούν στην υποσυμβολοσειρά, ξεκινώντας από τη θέση που έχουμε ήδη ορίσει στο πρώτο όρισμα. Αυτή η τεχνική απεικονίζεται καλά στο παραπάνω παράδειγμα.

Μετατροπή συμβολοσειράς σε πεζά ή κεφαλαία σε javascript

Υπάρχουν τέσσερις μέθοδοι για να κάνετε τους απαραίτητους μετασχηματισμούς. Δύο για να μετατρέψετε τους χαρακτήρες συμβολοσειράς κεφαλαίο.

Var stringOne = "Μίλα, δεν μπορώ να σε ακούω."; var stringTwo = stringOne.toLocaleUpperCase(); // "SPEAK UP, I CAN"THEAR YOU" var stringThree = stringOne.toUpperCase(); // "ΜΙΛΑ, ΔΕΝ ΣΕ ΑΚΟΥΩ"

Και δύο για να μετατρέψετε τη συμβολοσειρά σε πεζό:

Var stringOne = "ΔΕΝ ΠΡΕΠΕΙ ΝΑ ΦΩΝΑΞΕΙΣ"; var stringTwo = stringOne.toLocaleLowerCase(); // "δεν χρειάζεται να φωνάξεις" var stringThree = stringOne.toLowerCase(); // "δεν χρειάζεται να φωνάξεις"

Γενικά, δεν υπάρχει διαφορά μεταξύ μιας μεθόδου τοπικής και μιας μη τοπικής μεθόδου, αλλά «για ορισμένες γλώσσες, όπως η τουρκική, των οποίων η πεζογραφία χαρακτήρων δεν ακολουθεί την περίπτωση του συστήματος Unicode, οι συνέπειες της χρήσης μιας μη τοπικής μεθόδου μπορεί να είναι διαφορετικό». Επομένως, ακολουθήστε τον ακόλουθο κανόνα: "εάν δεν γνωρίζετε τη γλώσσα στην οποία θα λειτουργήσει ο κώδικας, είναι ασφαλέστερο να χρησιμοποιήσετε μεθόδους τοπικής ρύθμισης."

Αντιστοίχιση μοτίβων σε javascript

Μπορείτε να ελέγξετε την παρουσία ενός μοτίβου σε μια συμβολοσειρά χρησιμοποιώντας 2 μεθόδους.

Η μέθοδος match() καλείται στο αντικείμενο συμβολοσειράς και μια τυπική έκφραση μεταβιβάζεται ως όρισμα στη μέθοδο match().

Var myString = "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσακ ξύλου"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["ξύλο"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσοκ"

Και η μέθοδος exec() καλείται στο αντικείμενο RegExp, η συμβολοσειρά μεταβιβάζεται ως όρισμα:

Var myString = "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσακ ξύλου"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["τσοκ"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσοκ"

Και οι δύο μέθοδοι επιστρέφουν την πρώτη αντιστοιχισμένη εμφάνιση. Εάν δεν βρεθεί αντιστοιχία, το NULL θα επιστραφεί. Εάν η τυπική έκφραση έχει τη σημαία "g", τότε θα επιστραφεί ένας πίνακας που περιέχει όλες τις αντιστοιχίσεις.

Μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο search(), η οποία παίρνει μια τυπική έκφραση ως όρισμα και επιστρέφει την αρχική θέση του πρώτου μοτίβου που ταιριάζει.

Var myString = "Υποθέτω"; var patternLocation = myString.search(/ume/); // 3

Εάν δεν βρεθεί αντιστοίχιση, η μέθοδος θα επιστρέψει -1.

Σύγκριση δύο χορδών για επακόλουθη ταξινόμηση

Για να συγκρίνετε δύο συμβολοσειρές με βάση τη σειρά ταξινόμησης των τοπικών ρυθμίσεων, μπορείτε να χρησιμοποιήσετε τη μέθοδο localeCompare. Η μέθοδος localeCompare επιστρέφει τρεις πιθανές τιμές.

MyString = "κοτόπουλο"; var myStringTwo = "αυγό"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (εκτός από το Chrome, που επιστρέφει -2) whichCameFirst = myString.localeCompare("κοτόπουλο"); // 0 whichCameFirst = myString.localeCompare("apple"); // 1 (το Chrome επιστρέφει 2)

Όπως φαίνεται παραπάνω, μια αρνητική τιμή θα επιστραφεί εάν η αρχική συμβολοσειρά ταξινομηθεί πριν από το όρισμα συμβολοσειράς, εάν το όρισμα συμβολοσειράς ταξινομηθεί μετά την αρχική συμβολοσειρά, επιστρέφεται +1. Αν επιστρέψει μηδενική τιμή, οι δύο χορδές είναι ισοδύναμες.

Όταν γράφεις JavaScript, πολύ συχνά πρέπει να σερφάρετε στο Διαδίκτυο αναζητώντας πληροφορίες σχετικά με τη σύνταξη και παραμέτρους για μεθόδους που λειτουργούν με συμβολοσειρές.

Έχω διαβάσει πολλά άρθρα σχετικά με την εργασία με χορδές. Αυτή η ανάρτηση θα δείξει παραδείγματα και σύντομες περιγραφέςοι πιο συνηθισμένες μέθοδοι εργασίας με χορδές. Προσπάθησα να βάλω τις πιο συνηθισμένες μεθόδους στην κορυφή για γρήγορη αναφορά.

Φυσικά, οι περισσότεροι έμπειροι προγραμματιστές είναι ήδη αρκετά εξοικειωμένοι με πολλές από τις μεθόδους, αλλά νομίζω ότι αυτό καλή λίσταγια αρχάριους να κατανοήσουν το φάσμα των τεχνικών που μπορούν να βοηθήσουν στην εκτέλεση σύνθετων λειτουργιών με απλά μέσα.

Μετατροπή σε συμβολοσειρά

Μπορείτε να μετατρέψετε έναν αριθμό, μια δυαδική έκφραση ή ένα αντικείμενο σε μια συμβολοσειρά:

var myNumber = 24; // 24 var myString = myNumber.toString(); // "24"

Μπορείτε να το κάνετε με τον ίδιο τρόπο με Σειρά():

var myNumber = 24; // 24 var myString = String(myNumber); // "24"

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

Διαίρεση μιας συμβολοσειράς σε υποσυμβολοσειρές

Για να χωρίσετε τις συμβολοσειρές σε μια σειρά από υποσυμβολοσειρές, μπορείτε να χρησιμοποιήσετε τη μέθοδο διαίρεση():

Var myString = "coming,part,at,the,commas"; var substringArray = myString.split(","); // ["coming", "apart", "at", "the", "commas"] var arrayLimited = myString.split(",", 3); // ["ερχόμενος", "χωρίς", "στο"]

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

Λήψη του μήκους μιας χορδής

Για να βρούμε πόσοι χαρακτήρες υπάρχουν σε μια συμβολοσειρά, χρησιμοποιούμε την ιδιότητα μήκος:

Var myString = "Είσαι πολύ χαρακτήρας."; var stringLength = myString.length; // 25

Εύρεση υποσυμβολοσειράς σε συμβολοσειρά

Υπάρχουν δύο μέθοδοι για την αναζήτηση μιας υποσυμβολοσειράς:

Χρήση indexOf():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.indexOf("Waldo"); // 7

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

Χρήση lastIndexOf():

Var stringOne = "Johnny Waldo Harrison Waldo"; var wheresWaldo = stringOne.lastIndexOf("Waldo"); // 22

Η μέθοδος επιστρέφει την αρχική θέση της τελευταίας εμφάνισης της υποσυμβολοσειράς στη συμβολοσειρά.

Και οι δύο μέθοδοι επιστρέφουν -1 εάν δεν βρεθεί η δευτερεύουσα συμβολοσειρά και αμφότερες λαμβάνουν ένα προαιρετικό δεύτερο όρισμα που υποδεικνύει τη θέση στη συμβολοσειρά όπου θέλετε να ξεκινήσετε την αναζήτηση. Έτσι, εάν το δεύτερο όρισμα είναι "5", indexOf()ξεκινά την αναζήτηση στον χαρακτήρα 5, αγνοώντας τους χαρακτήρες 0-4, ενώ lastIndexOf()ξεκινά την αναζήτηση στον χαρακτήρα 5 και πηγαίνει προς τα πίσω, αγνοώντας τους χαρακτήρες 6 και πέρα.

Αντικατάσταση υποσυμβολοσειράς

Για να αντικαταστήσετε μια εμφάνιση μιας υποσυμβολοσειράς σε μια συμβολοσειρά με μια άλλη υποσυμβολοσειρά, μπορείτε να χρησιμοποιήσετε αντικαθιστώ():

Var slugger = "Τζος Χάμιλτον"; var betterSlugger = slugger.replace("h Hamilton", "e Bautista"); console.log(betterSlugger); // "Χοσέ Μπαουτίστα"

Το πρώτο όρισμα είναι αυτό που θέλετε να αντικαταστήσετε και το δεύτερο όρισμα είναι μια νέα συμβολοσειρά. Η συνάρτηση αντικαθιστά μόνο την πρώτη εμφάνιση μιας υποσυμβολοσειράς σε μια συμβολοσειρά.

Για να αντικαταστήσετε όλες τις εμφανίσεις, πρέπει να χρησιμοποιήσετε μια τυπική έκφραση με μια καθολική σημαία:

Var myString = "Πουλάει κοχύλια αυτοκινήτων στην ακτή του αυτοκινήτου"; var newString = myString.replace(/automotive/g, "sea"); αρχείο καταγραφής κονσόλας(newString); // "Πουλάει κοχύλια στην ακτή της θάλασσας"

Το δεύτερο όρισμα μπορεί να περιλαμβάνει ένα ειδικό πρότυπο ή συνάρτηση. Περισσότερες λεπτομέρειες μπορείτε να διαβάσετε.

Λάβετε έναν χαρακτήρα σε μια δεδομένη θέση σε μια συμβολοσειρά

Μπορούμε να πάρουμε τον χαρακτήρα χρησιμοποιώντας τη συνάρτηση charAt():

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charAt(7); // "f"

Όπως συμβαίνει συχνά στην JavaScript, η πρώτη θέση σε μια συμβολοσειρά ξεκινά από το 0 και όχι από το 1.

Ως εναλλακτική λειτουργία, μπορείτε να χρησιμοποιήσετε charCodeAt()λειτουργία, που είναι ο κωδικός χαρακτήρα.

Var myString = "Birds of a Feather"; var whatsAtSeven = myString.charCodeAt(7); // "102" var whatsAtEleven = myString.charCodeAt(11); // "70"

Σημειώστε ότι ο κωδικός για τον χαρακτήρα "F" (θέση 11) είναι διαφορετικός από αυτόν για τον χαρακτήρα "f" (θέση 7).

Σύνδεση χορδών

Στις περισσότερες περιπτώσεις, μπορείτε να χρησιμοποιήσετε τον τελεστή "+" για να ενώσετε συμβολοσειρές. Αλλά μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο concate():

Var stringOne = "Knibb High football"; var stringTwo = stringOne.concat("κανόνες."); // "Κανόνες ποδοσφαίρου Knibb High"

Με αυτόν τον τρόπο, μπορούμε να ενώσουμε πολλές γραμμές σε μία με τη σειρά που είναι γραμμένες:

VarstringOne = "Knibb"; var stringTwo = "Υψηλό"; var stringThree = "ποδόσφαιρο"; var stringFour = "κανόνες."; var finalString = stringOne.concat(stringTwo, stringThree, stringFour); console.log(finalString); // "Knibb υψηλοί κανόνες ποδοσφαίρου."

Εξαγωγή υποσυμβολοσειράς

Υπάρχουν 3 τρόποι για να λάβετε μια συμβολοσειρά από μέρος μιας άλλης συμβολοσειράς:

Χρησιμοποιώντας φέτα():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.slice(5, 10); // "fghij"

Χρησιμοποιώντας substring():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substring(5, 10); // "fghij"

Και στις δύο συναρτήσεις, η πρώτη παράμετρος είναι ο χαρακτήρας από τον οποίο ξεκινά η υποσυμβολοσειρά (ξεκινώντας από τη θέση 0) και το δεύτερο όρισμα (προαιρετικό) είναι η θέση χαρακτήρα μέχρι την οποία επιστρέφεται η υποσυμβολοσειρά. Το παράδειγμα (5, 10) επιστρέφει τη συμβολοσειρά μεταξύ της θέσης 5 και 9.

Χρησιμοποιώντας substr():

Var stringOne = "abcdefghijklmnopqrstuvwxyz"; var stringTwo = stringOne.substr(5, 10); // "fghijklmno"

Το πρώτο όρισμα είναι η θέση χαρακτήρα από την οποία ξεκινά η νέα γραμμή και το δεύτερο όρισμα είναι ο αριθμός των χαρακτήρων από την αρχική θέση της νέας γραμμής. Εκείνοι. (5, 10) επιστρέφει 10 χαρακτήρες ξεκινώντας από τη θέση 5.

Μετατρέψτε μια συμβολοσειρά σε κεφαλαία ή πεζά.

Υπάρχουν 4 μέθοδοι μετάφρασης. Τα πρώτα 2 μετατρέπουν τη συμβολοσειρά σε κεφαλαία:

Var stringOne = "Μίλα, δεν μπορώ να σε ακούω."; var stringTwo = stringOne.toLocaleUpperCase(); // "SPEAK UP, I CAN"THEAR YOU" var stringThree = stringOne.toUpperCase(); // "ΜΙΛΑ, ΔΕΝ ΣΕ ΑΚΟΥΩ"

Τα άλλα 2 μετατρέπουν τη συμβολοσειρά σε πεζά:

Var stringOne = "ΔΕΝ ΠΡΕΠΕΙ ΝΑ ΦΩΝΑΞΕΙΣ"; var stringTwo = stringOne.toLocaleLowerCase(); // "δεν χρειάζεται να φωνάξεις" var stringThree = stringOne.toLowerCase(); // "δεν χρειάζεται να φωνάξεις"

Είναι προτιμότερο να χρησιμοποιείτε μεθόδους "τοπικές", όπως σε διαφορετικούς τόπους, για παράδειγμα, στην Τουρκία, η εμφάνιση των μητρώων δεν λειτουργεί όπως έχουμε συνηθίσει και επομένως το αποτέλεσμα μπορεί να είναι αυτό που θέλαμε. Εάν χρησιμοποιείτε μεθόδους "τοπικές", τότε δεν θα υπάρχουν τέτοια προβλήματα.

αντιστοίχιση μοτίβων

Η αντιστοίχιση μοτίβων σε μια συμβολοσειρά μπορεί να χρησιμοποιηθεί με 2 μεθόδους που λειτουργούν με διαφορετικούς τρόπους.

Μέθοδος αγώνας()εφαρμόζεται σε μια συμβολοσειρά και παίρνει μια κανονική έκφραση ως παράμετρο:

Var myString = "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσακ ξύλου"; var myPattern = /.ood/; var myResult = myString.match(myPattern); // ["ξύλο"] var patternLocation = myResult.index; // 9 var originalString = myResult.input // "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσοκ"

Μέθοδος exec()εφαρμόζεται σε ένα αντικείμενο κανονικής έκφρασης και παίρνει μια συμβολοσειρά ως παράμετρο:

Var myString = "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσακ ξύλου"; var myPattern = /.huck/; var myResult = myPattern.exec(myString); // ["τσοκ"] var patternLocation = myResult.index; // 27 var originalString = myResult.input // "Πόσο ξύλο θα μπορούσε να τσακίσει ένα τσοκ"

Και οι δύο μέθοδοι επιστρέφουν μόνο τον πρώτο αγώνα. Αν δεν υπήρχαν αγώνες, επιστρέφει μηδενικό.

Μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο Αναζήτηση(), που παίρνει μια κανονική έκφραση και επιστρέφει τη θέση της πρώτης αντιστοίχισης του μοτίβου:

Var myString = "Υποθέτω"; var patternLocation = myString.search(/ume/); // 3

Αν δεν υπήρχαν αγώνες, επιστρέφει" -1 «.

Σύγκριση δύο χορδών για ταξινόμηση

Μπορείτε να συγκρίνετε 2 συμβολοσειρές για να προσδιορίσετε ποια έρχεται πρώτη αλφαβητικά. Για να το κάνουμε αυτό, χρησιμοποιούμε τη μέθοδο localeCompare(), το οποίο επιστρέφει 3 πιθανές τιμές:

Var myString = "κοτόπουλο"; var myStringTwo = "αυγό"; var whichCameFirst = myString.localeCompare(myStringTwo); // -1 (Το Chrome επιστρέφει -2) whichCameFirst = myString.localeCompare("κοτόπουλο"); // 0 whichCameFirst = myString.localeCompare("apple"); // 1 (το Chrome επιστρέφει 2)

Όπως φαίνεται παραπάνω, ένας αρνητικός αριθμός επιστρέφεται εάν το όρισμα συμβολοσειράς ακολουθεί πρωτότυπη χορδή. Ένας θετικός αριθμός εάν το όρισμα συμβολοσειράς προηγείται της αρχικής συμβολοσειράς. Αν επιστραφεί 0 σημαίνει ότι οι χορδές είναι ίσες.

Για να ελέγξετε την τιμή επιστροφής, είναι προτιμότερο να χρησιμοποιήσετε το if (αποτέλεσμα< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Σας ευχαριστώ για την προσοχή σας, ελπίζω να έχετε μάθει πολλά νέα και ενδιαφέροντα πράγματα!

Συντάκτης άρθρου: Alex. Κατηγορία:
Ημερομηνία δημοσίευσης: 19/03/2013

Οι τελεστές των τελεστών σύγκρισης μπορεί να είναι αριθμητικές και τιμές συμβολοσειρών. Οι συμβολοσειρές συγκρίνονται με βάση την τυπική λεξικογραφική σειρά κατά τη χρήση του Unicode.

Το Javascript επιτρέπει τόσο αυστηρή σύγκριση όσο και σύγκριση cast. Για μια αυστηρή σύγκριση, και οι δύο τελεστές πρέπει να είναι του ίδιου τύπου και:

  • Δύο συμβολοσειρές είναι αυστηρά ίσες αν αποτελούνται από την ίδια ακολουθία χαρακτήρων
  • Δύο αριθμοί είναι αυστηρά ίσοι αν είναι ίσοι με τη συνήθη έννοια της λέξης. Το +0 είναι αυστηρά ίσο με -0.
  • Το NaN δεν είναι αυστηρά ίσο με τίποτα, συμπεριλαμβανομένου του NaN
  • Δύο τελεστές boolean είναι αυστηρά ίσοι αν είναι και οι δύο true ή false
  • Δύο τελεστές αντικειμένων είναι αυστηρά ίσοι αν είναι αναφορές στο ίδιο κοινό αντικείμενο
  • Το Null και το Undefined είναι ίσα == αλλά όχι αυστηρά ίσα ===

Ο παρακάτω πίνακας περιγράφει τους τελεστές σύγκρισης:

Χειριστής Περιγραφή Παραδείγματα που επιστρέφουν true για var1=3, var2=4
Ισούται (==) Εάν οι δύο τελεστές δεν είναι του ίδιου τύπου, η javascript κάνει μια μετατροπή τύπου και συγκρίνει αυστηρά. Εάν οποιοσδήποτε τελεστής είναι αριθμός ή τιμή boolean, τότε οι τελεστές μετατρέπονται σε αριθμούς. Εάν κάποιος τελεστής είναι συμβολοσειρά - ο δεύτερος μετατρέπεται σε συμβολοσειρά

3 == var1
"3" == var1
3 == "3"

Όχι ίσο (!=) Επιστρέφει true αν οι τελεστές δεν είναι ίσοι. Αν οι τελεστές έχουν διαφορετικού τύπου, javascript μετατρέπει.

var1 != 4
var1 != "5"

Αυστηρά ίσα (===) Επιστρέφει true εάν οι τελεστές είναι αυστηρά ίσοι (βλ. παραπάνω), χωρίς μετατροπή τύπου.
Αυστηρά όχι ίσο (!==) Επιστρέφει true εάν οι τελεστές δεν είναι αυστηρά ίσοι (βλέπε παραπάνω) ή είναι διαφορετικών τύπων.

var2 !== 3
3 !== "3"

Περισσότερα (>) Επιστρέφει true αν ο αριστερός τελεστής είναι μεγαλύτερος από τον δεξιό.
Μεγαλύτερο ή ίσο (>=) Επιστρέφει true εάν ο αριστερός τελεστής είναι μεγαλύτερος ή ίσος του δεξιού τελεστή.

var2 >= var1
var1 >= 3

Πιο λιγο (<) Επιστρέφει true εάν ο αριστερός τελεστής είναι μικρότερος από τον δεξιό τελεστή.
Λιγότερο ή ίσο (<=) Επιστρέφει true εάν ο αριστερός τελεστής είναι μικρότερος ή ίσος του δεξιού τελεστή.

var1<= var2
var2<= 5

Χρήση τελεστών σύγκρισης

Οι τυπικοί τελεστές ισότητας (== και !=) συγκρίνουν δύο τελεστές, ανεξάρτητα από τον τύπο τους. Η αυστηρή ισότητα (=== και !==) συγκρίνει τελεστές του ίδιου τύπου. Χρησιμοποιήστε αυστηρή ισότητα εάν οι τελεστές πρέπει να είναι του ίδιου τύπου και τιμής. Διαφορετικά, χρησιμοποιήστε τους κανονικούς τελεστές ισότητας, οι οποίοι σας επιτρέπουν να ελέγξετε την ισότητα των τελεστών, ακόμα κι αν είναι διαφορετικών τύπων.

Κατά τη μετατροπή τύπων, η Javascript μετατρέπει Σειρά , αριθμός , Booleanκαι Αντικείμενομε τον εξής τρόπο:

  • Κατά τη σύγκριση ενός αριθμού και μιας συμβολοσειράς, η συμβολοσειρά μετατρέπεται σε αριθμητική τιμή. Η Javascript παίρνει την τιμή του αριθμού από τη συμβολοσειρά κυριολεκτικά: "123" == 123 .
  • Αν ένας από τους τελεστές είναι boolean, τότε μετατρέπεται σε 1 αν είναι αληθής και σε +0 αν είναι false
  • Εάν ένα αντικείμενο συγκρίνεται με έναν αριθμό ή μια συμβολοσειρά, η javascript προσπαθεί να πάρει την αντίστοιχη τιμή για το αντικείμενο. Μετατρέπει ένα αντικείμενο σε μια πρωταρχική τιμή, συμβολοσειρά ή αριθμό χρησιμοποιώντας τις μεθόδους valueOf και toString. Εάν το αντικείμενο δεν μπορεί να μετατραπεί, δημιουργείται ένα σφάλμα χρόνου εκτέλεσης.

Θα σας προειδοποιήσω αμέσως, ναι, το άρθρο είναι λίγο λανθασμένο, καλώς ήρθατε στα σχόλια, υπάρχουν καλές διευκρινίσεις).

Καλή μέρα.

Η JavaScript έχει δύο παρόμοιους τελεστές: == και ===. Εάν δεν γνωρίζετε τις διαφορές τους, αυτό μπορεί να μετατραπεί σε ένα σωρό λάθη. Αποφάσισα λοιπόν να ανοίξω αυτό το θέμα. Ποια ακριβώς είναι η διαφορά μεταξύ == και ===, πώς λειτουργούν, γιατί συμβαίνει και πώς να αποφύγετε λάθη.

Ο τελεστής == συγκρίνει για ισότητα, αλλά === συγκρίνει για ταυτότητα. Το πλεονέκτημα του τελεστή === είναι ότι δεν εξαναγκάζει δύο τιμές στον ίδιο τύπο. Γι' αυτό χρησιμοποιείται συνήθως.

Abc == απροσδιόριστο; // true αν abc = απροσδιόριστο | null abc === απροσδιόριστο; // true - μόνο αν abc = απροσδιόριστο!
abc == false; // true αν abc = false | 0 | "" | abc === false; // αληθές μόνο αν abc = false!
Σε τελική ανάλυση, η σύγχυση του false και του 0 (ή "", ή ) δεν είναι καθόλου καλή.

Φυσικά:
5 === 5; // true true === true; // true "abc" === "abc"; // αληθές

Και τώρα ένα ενδιαφέρον παράδειγμα.
5 == 5; // true 5 === 5; // true new Number(5) == 5; // true new Number(5) === 5; // ψεύτικο!

Γιατί συμβαίνει αυτό? Ναι, οποιοσδήποτε αριθμός είναι αντικείμενο της κλάσης Number. Αλλά μπορείτε να αναπαραστήσετε έναν αριθμό ως ψηφίο - κάποια σταθερά. Δηλώνεται μία φορά και είναι πάντα πανομοιότυπο με τον εαυτό του. Αλλά ταυτόχρονα, δηλώνοντας ένα νέο αντικείμενο της κλάσης Number - είναι ίσο με αυτό σε τιμή, αλλά όχι πανομοιότυπο (καθώς πρόκειται για δύο εντελώς διαφορετικά αντικείμενα της κλάσης Number).

Πίνακες / Αντικείμενα

Αλλά για πίνακες και αντικείμενα, και οι δύο τελεστές λειτουργούν με τον ίδιο τρόπο, συγκρίνοντας ως προς την ταυτότητα:
var a = (); a == (); // false a === (); // false a == a; // true a === a; // αληθές

Για να συγκρίνετε πίνακες και αντικείμενα, μπορείτε να γράψετε μια ειδική συνάρτηση:
συνάρτηση isEq(a, b)( if(a == b) επιστροφή true; for(var i in a)( if(!isEq(a[i], b[i])) return false; ) for(var i στο β)( if(!isEq(a[i], b[i])) return false; ) return true; )
Λίγο ατημέλητο, δύο κύκλους και περίπου έχει Ιδιότηταξέχασα? καλά θα κάνει.

Αυτό<-

Υπάρχει μια άλλη παγίδα. Αυτό είναι ένα πέρασμα σε αυτό.
(function()( this == 5; // true this === 5; // false )).call(5);

Εδώ είναι μια τέτοια στιγμή. Αξίζει να μην το ξεχνάμε.

Σύνολο...

Λοιπόν, τώρα φανταστείτε ότι γράφουμε το δικό μας υπερπλαίσιο, χρησιμοποιώντας ενεργά τον τελεστή === αντί για == εκεί απλά επειδή είναι πιο όμορφος, και κάποιος βρίσκει πολλά σφάλματα μαζί μας.
func(newNumber(5)); (function()( func(this); )).call(5);

Φαίνεται ότι τέτοια παραδείγματα δεν είναι βιώσιμα; Σας παρακαλούμε!

jQuery:
$.each(, function()( func(this); ));

Λοιπόν, ή ήθελε να επεκτείνει το σχήμα.
var Five = νέος αριθμός(5); πέντε.α = 2; // Ήθελα να επεκταθώ, αλλά μόνο το 5 δεν επεκτείνεται // εδώ χρησιμοποιούμε με κάποιο τρόπο... func(Five);

Αυτό είναι όλο, ελπίζω να είναι χρήσιμο σε κάποιον. Σας ευχαριστώ για την προσοχή σας.