internetul Windows. Android

Disponibilitatea JavaScript de substring într-un șir. JavaScript - Row - Ștergeți monstrul din rândul JS

Când scriu la JavaScript, atunci trebuie să consultați adesea motoarele de căutare, pentru a clarifica sintaxa metodelor (și ordinea, definirea argumentelor) care lucrează cu rânduri.

În acest articol, voi încerca să dau exemple și descrierea celor mai frecvente metode JavaScript legate de linii. Cele mai populare metode de confort sunt situate în partea de sus a articolului.

Ne transformăm într-un șir

Puteți converti un număr, valoare booleană sau obiect în șir.

Var mynumber \u003d 24; // 24 var de mystering \u003d mynumber.tostring (); // "24"

De asemenea, puteți efectua manipularea similară utilizând funcția șir ().

Var mynumber \u003d 24; // 24 Var MyString \u003d șir (mynumber); // "24"

Nicholas SVAS spune: "Dacă nu sunteți sigur de valoarea (null sau nedefinit), utilizați funcția șir (), deoarece returnează șirul în independență de tipul variabil."

nedefinit. înseamnă că variabila nu este atribuită nici o valoare, a nUL - ceea ce este atribuit valorii ei goale (se poate spune că null este definit ca un obiect gol).

Împărțim șirul la substring

Pentru a împărți șirul la o matrice de la substring, puteți utiliza metoda Split ():

Vary mystring \u003d "vine, în afară, la, virgule"; var substringarray \u003d mystring.split (","); // ["Vine", "Apart", "AT", "The", "Commas"] Var Arraylimited \u003d MyString.split (",", 3); // ["Veniți", "Apart", "AT"]

După cum urmează din ultima linie, valoarea celui de-al doilea argument opțional determină numărul de elemente de la matricea returnată.

Obțineți o lungime a șirului

Folosind proprietățile de lungime, puteți găsi numărul de caractere Unicode în rând:

Var MyString \u003d "Sunteți un caracter destul de un caracter", Var Stringlength \u003d mystring.Length; // 25

Determinați substringul în șir

Există două modalități de a face un conceput:

Utilizați indexarea ():

Var Stringone \u003d "Johnny Waldo Harrison Waldo"; Var undewaldo \u003d stringone.indexof ("waldo"); // 7.

Metoda IndexOf () caută un substring (primul argument transmis) în șirul (de la începutul liniei) și returnează poziția primului caracter din care antreprenorii au început să intre în șir.

Utilizați LastIvExof ():

Var Stringone \u003d "Johnny Waldo Harrison Waldo"; Var undewaldo \u003d stringone.Lastindexof ("waldo"); // 22.

Metoda LastIrindexof () face același lucru, cu excepția faptului că este în căutarea ultimului înlocuitor pentru introducerea șirului.

În cazul în care substringul nu a găsit ambele metode retur -1. Al doilea argument opțional indică o poziție în șirul cu care doriți să începeți o căutare. Deci, dacă pentru indexarea metodei () al doilea argument este de 5, atunci căutarea va începe de la cel de-al 5-lea caracter, iar 0-4 caractere vor fi ignorate. Pentru LastIvExof (), de asemenea, dacă al doilea argument este de 5, căutarea va începe în direcția opusă, iar simbolurile de la a 6-a și mai sus vor fi ignorate.

Cum să înlocuiți partea șirului

Pentru a înlocui șirurile părții (sau chiar toate), utilizați metoda Înlocuire ().

Var Slugger \u003d "Josh Hamilton"; Var Betterslugger \u003d Slugger.Replace ("H Hamilton", "e Bautista"); Consola.log (Betterslugger); // "Jose Bautista"

Primul argument conține partea substringului care este supusă înlocuirii; Al doilea argument este linia care se va ridica la locul de substring înlocuibil. Numai prima instanță a substringului va fi înlocuită.

Pentru a înlocui toată intrarea substringului, utilizați expresia regulată cu pavilionul "G".

Var MyString \u003d "Vinde cochilii auto pe țărmul auto"; VAR NEWString \u003d MyString.Replace (/ Automotive / G, "SEA"); Consola.log (nou); // "Vinde cochilii de mare pe malul mării"

Al doilea argument poate include un substrat sau o funcție înlocuibilă.

Găsiți un personaj la o anumită poziție

Pentru a afla care caracter se află într-o poziție dată, puteți utiliza metoda Charat ():

Var MyString \u003d "păsări de pene"; var whatsatseven \u003d mystring.charat (7); // "f"

De câte ori se întâmplă în JavaScript, prima poziție conduce propria numărătoarea inversă de la 0 și nu cu 1.

Ca o alternativă, puteți utiliza metoda carcodeat (), dar în loc de simbolul în sine veți primi codul său.

Var MyString \u003d "păsări de pene"; Var whatsatseven \u003d mystring.charcodeat (7); // "102" var whatsateven \u003d mystring.charcodeat (11); // 70 "

Rețineți că codul pentru majuscule (poziția 11) diferă de codul aceleiași litere, dar în registrul mic (poziția 7).

Concatenarea corzilor în JavaScript

Prin majoritatea părților pentru concatenarea liniilor, veți folosi operatorul (+). Dar puteți combina și șiruri de caractere utilizând metoda Concat ().

Var Stringone \u003d "Knibb High Fotbal"; Var Stringtwo \u003d Stringone.concat ("Reguli"); // "regulile de fotbal înalt Knibb"

În concac (), puteți transfera un set plural, iar în linia rezultată vor fi aranjate pentru a le adăuga la metoda Concat ().

Var șirone \u003d "knibb"; Var Srettwo \u003d "High"; Var Stringthree \u003d "Fotbal"; Var șirfor \u003d "reguli"; Var FinalString \u003d Stringone.concat (Stringtwo, Stringthree, Stringfour); Consola.log (final); // "Reguli de fotbal ridicate Knibb".

O parte a liniei (extrageți înlocuitorul în JavaScript)

Există trei modalități diferite de a crea un șir nou, "trage" o parte a substringului de la șirul deja disponibil.

Folosind Slice ():

Var șirone \u003d "abcdefghijklmnopqrstuvwxyz"; Var Stringtwo \u003d Stringone.Slice (5, 10); // "FGHIJ"

Folosind substring ():

Var șirone \u003d "abcdefghijklmnopqrstuvwxyz"; Var Stringtwo \u003d Stringone.substring (5, 10); // "FGHIJ"

Pentru ambele metode (felie () și substring ()), primul argument este poziția simbolului din care începe substringul (numărătoarea inversă este efectuată de la 0), al doilea argument este poziția simbolului pe care se termină substringul , și simbolul desemnat în al doilea argument, care nu este inclus în substringul returnat.

Utilizarea substrului ():

Var șirone \u003d "abcdefghijklmnopqrstuvwxyz"; Var Stringtwo \u003d Stringone.substr (5, 10); // "Fghijklmno"

Pentru metoda substant, primul argument definește, de asemenea, poziția caracterului de la care începe substringul. Al doilea argument este opțional. Dar, în același timp, al doilea argument determină numărul de caractere care trebuie incluse în substring, pornind de la poziția pe care am fost deja stabilită în primul argument. Această tehnică este bine ilustrată de exemplul de mai sus.

Conversia șirului în fundul inferior sau de sus pe JavaScript

Există patru metode pentru a face conversia necesară. Două pentru a converti caracterele șirului în registrul de sus.

Var Stringone \u003d "Vorbește în sus, nu te pot auzi" // Vorbește, nu te pot auzi "

Și două pentru a transforma șirurile la litere mici:

Var Stringone \u003d "Nu trebuie să strigați"; Var Stringtwo \u003d Stringone.tolocaleLowcase (); // "nu trebuie să strigați" Var Stringthree \u003d Stringone.tolowowcase (); // "nu trebuie să strigi"

De regulă, nu există nici o diferență între metoda localizării și metoda non-localizată, "pentru unele limbi, de exemplu, pentru turcă, a cărei registru de simbol nu respectă registrul stabilit în sistemul Unicode, consecințele utilizării utilizării Metoda non-localizare poate fi diferită. " Deci, urmați următoarea regulă: "Dacă nu cunoașteți limba în care codul va funcționa, mai sigur de a utiliza metodele de localizare".

Șablonul de potrivire în JavaScript

Puteți verifica prezența unui șablon la rând utilizând 2 metode.

Metoda de potrivire () este apelată din obiectul șirului, o expresie regulată este transmisă ca argument.

Var șirul meu \u003d "cât de mult lemn ar putea un chuck de lemn"; vary mypattern \u003d /.ood/; var myresult \u003d mystring.match (mypattern); // ["Wood"] Var PatternLocation \u003d Myresult.Index; // 9 var originstring \u003d myresult.input // "cât de mult lemn ar putea un chuck de lemn"

Și Exec () Metoda este numită de un obiect regexp, un șir este transmis ca argument:

Var șirul meu \u003d "cât de mult lemn ar putea un chuck de lemn"; vary mypattern \u003d /.huck/; vary myresult \u003d mypattern.exec (mystring); // ["chuck"] var modelăd \u003d myresult.index; // 27 var originstring \u003d myresult.input // "cât de mult lemn ar putea un chuck de lemn"

Ambele metode returnează prima intrare coincidă. Dacă coincidențele nu sunt găsite, NULL va fi returnat. Dacă expresia regulată are un steag "G", atunci o matrice care conține toate coincidențele vor fi returnate ca rezultat.

De asemenea, puteți utiliza metoda Căutare (), care, ca argument, are o expresie regulată și returnează poziția inițială a primului șablon coincide.

Var MyString \u003d "presupune"; Var PatternLocation \u003d MyString.Search (/ Ume /); // 3.

Dacă nu s-au găsit coincidențe, metoda se va întoarce -1.

Compararea a două linii pentru sortarea ulterioară

Pentru a compara două linii în funcție de ordinea de sortare din standardul de limbă, puteți utiliza metoda localecompare. Metoda localeCompare returnează trei valori posibile.

Mystring \u003d "pui"; Var MyStringtwo \u003d "ou"; VaCaCameFirst \u003d MyString.LocaleCompare (MyStringtwo); // -1 (cu excepția cromului, care returnează -2) ceFamefirst \u003d mystring.localeCompare ("pui"); // 0 whocamefirst \u003d mystring.localecompare ("Apple"); // 1 (randamentele cromului 2)

După cum se arată mai sus, o valoare negativă va fi returnată dacă șirul original în timpul sortare se dovedește a fi înainte de argumentul șirului dacă argumentul șirului când sortarea se pare că valoarea originală este +1. Dacă valoarea zero este returnată, cele două linii sunt echivalente.

Metoda include () determină dacă un șir poate fi găsit într-un alt șir returnând adevărat sau fals dacă este necesar.

Sintaxă: -String.include (căutare [, poziția])

căutare: - Șirul pe care doriți să îl căutați în cadrul acestei linii.

poziție: - suplimentar. Poziția în această linie în care ar trebui să fie căutate căutare; Implicit 0.

Șir \u003d "lol"; Consola.log (șir.include ("lol")); // returnează consola falsă.log (șir.include ("lol")); // returnează adevărat.

Am un coș de cumpărături care afișează parametrii produsului în meniul derulant și dacă aleg "da", vreau să fac alte câmpuri pe pagina vizibilă.

Problema este că coșul de cumpărături este inclus și în modificatorul prețului din text care poate diferi pentru fiecare produs. Următorul cod de cod:

$ (Document) .Ready (Funcție () ($ (selectați "). Schimbați (" Selectați opțiunea: selectată "). Text (); dacă (str \u003d\u003d" Da (+ $ 6.95) ") ($ (" Gravurarea "). Afișați ();) altceva ($ (" gravare "). Ascunde ();)));));));

Cu toate acestea, aș prefera să folosesc ceva de genul asta, ceea ce nu funcționează:

$ (Document) .Ready (Funcție () ($ (selectați "). Schimbați (" Selectați opțiunea: selectată "). Text (); dacă (str * \u003d" da ") ($ (" gravare "). Afișați ();) altceva ($ ("gravare"). Ascunde ();))))))));));

Vreau doar să efectuez o acțiune dacă opțiunea selectată conține cuvântul "da" și ignoră modificatorul prețului.

Când scrieți JavaScript.Deseori urcă internetul în căutarea de informații de sintaxă și parametri pentru metodele care lucrează cu linii.

Am citit multe articole despre lucrul cu rânduri. În acest post, vor fi afișate exemple și descrieri scurte ale celor mai frecvente metode de lucru cu rânduri. Am încercat să pun cele mai frecvente metode în top pentru familiarizarea rapidă.

Desigur, dezvoltatorii cei mai experimentați sunt deja familiarizați cu multe dintre metode, dar cred că aceasta este o listă bună pentru începători să înțeleagă spectrul de metode care pot ajuta la efectuarea de operații complexe cu mijloace simple.

Conversie la șir

Puteți converti un număr, expresie boolevo sau obiect în șir:

Var mynumber \u003d 24; // 24 var de mystering \u003d mynumber.tostring (); // "24"

Puteți face acest lucru și Șir ():

Var mynumber \u003d 24; // 24 Var MyString \u003d șir (mynumber); // "24"

Dacă nu sunteți sigur că valoarea nu este nUL sau nedefinit., poți să folosești Șir ()care întotdeauna returnează un șir, indiferent de tipul de valoare.

Divizarea șirului în substring

Pentru a partaja șirurile într-o serie de substring, puteți utiliza metoda despică ():

Vary mystring \u003d "vine, în afară, la, virgule"; var substringarray \u003d mystring.split (","); /. // ["Veniți", "Apart", "AT"]

Așa cum se poate vedea în ultima linie, al doilea parametru funcției este limita numărului de elemente care vor fi în matricea finală.

Obținerea șirului de lungime

Pentru a afla câte caractere în șir, folosim proprietatea lungime:

Var MyString \u003d "Sunteți un caracter destul de un caracter", Var Stringlength \u003d mystring.Length; // 25

Căutați substanting în linie

Există două metode de căutare a substringului:

Folosind. index de ():

Var Stringone \u003d "Johnny Waldo Harrison Waldo"; Var undewaldo \u003d stringone.indexof ("waldo"); // 7.

index de () Metoda începe să caute substanting de la începutul șirului și returnează poziția începutului primei intrare a substringului. În acest caz, 7 poziții.

Folosind. LastIvExof ():

Var Stringone \u003d "Johnny Waldo Harrison Waldo"; Var undewaldo \u003d stringone.Lastindexof ("waldo"); // 22.

Metoda returnează poziția inițială a ultimei de intrare la șir.

În ambele metode, în cazul în care substringul nu este găsit, valoarea -1 este returnată și ambele iau al doilea argument opțional indicând poziția din șirul în care doriți să începeți o căutare. Astfel, dacă al doilea argument "5", index de () începe să caute cu 5 caractere, ignorând caracterele 0-4, în timp ce lastIvExof () Începe să caute dintr-un simbol 5 și merge în direcția opusă, ignorând caracterele 6 și pe.

Înlocuirea substringului

Pentru a înlocui intrarea substring la rând la un alt substring, puteți utiliza a INLOCUI ():

Var Slugger \u003d "Josh Hamilton"; Var Betterslugger \u003d Slugger.Replace ("H Hamilton", "e Bautista"); Consola.log (Betterslugger); // "Jose Bautista"

Primul argument este că doriți să înlocuiți, iar al doilea argument este o linie nouă. Funcția înlocuiește numai prima intrare a substringului în șir.

Pentru a înlocui toate intrările, trebuie să utilizați o expresie regulată cu un steag global:

Var MyString \u003d "Vinde cochilii auto pe țărmul auto"; VAR NEWString \u003d MyString.Replace (/ Automotive / G, "SEA"); Consola.log (nou); // "Vinde cochilii de mare pe malul mării"

Al doilea argument poate include un șablon sau o funcție specială. Detaliile pot fi citite.

Obțineți un simbol pentru o anumită poziție în șir

Putem obține un simbol folosind o funcție. charat ():

Var MyString \u003d "păsări de pene"; var whatsatseven \u003d mystring.charat (7); // "f"

De câte ori se întâmplă în JavaScript, prima poziție din șir începe cu 0 și nu cu 1.

Caracteristicile alternative pot fi utilizate carcodeat () Funcția care este codul de simbol.

Var MyString \u003d "păsări de pene"; Var whatsatseven \u003d mystring.charcodeat (7); // "102" var whatsateven \u003d mystring.charcodeat (11); // 70 "

Rețineți că codul pentru simbolul "F" (11 poziția) este altul decât simbolul "F" (poziția 7).

Carcasă

În cele mai multe cazuri, pentru a conecta liniile, puteți utiliza operatorul "+". Dar puteți folosi și metoda concac ():

Var Stringone \u003d "Knibb High Fotbal"; Var Stringtwo \u003d Stringone.concat ("Reguli"); // "regulile de fotbal înalt Knibb"

În acest fel, putem conecta mai multe linii într-una în ordinea în care sunt înregistrate:

Var șirone \u003d "knibb"; Var Srettwo \u003d "High"; Var Stringthree \u003d "Fotbal"; Var șirfor \u003d "reguli"; Var FinalString \u003d Stringone.concat (Stringtwo, Stringthree, Stringfour); Consola.log (final); // "Reguli de fotbal ridicate Knibb".

Eliminarea substringului

Există 3 moduri de a obține un șir dintr-o parte a unei alte linii:

Folosind. felie ():

Var șirone \u003d "abcdefghijklmnopqrstuvwxyz"; Var Stringtwo \u003d Stringone.Slice (5, 10); // "FGHIJ"

Folosind. substring ():

Var șirone \u003d "abcdefghijklmnopqrstuvwxyz"; Var Stringtwo \u003d Stringone.substring (5, 10); // "FGHIJ"

În ambele, prima funcție de parametru este caracterul din care începe substringul (începând cu 0 elemente), iar al doilea argument (opțional) este poziția simbolului la care este returnată substringul. În exemplul (5, 10), linia este returnată între poziția 5 și 9.

Folosind. substanță ():

Var șirone \u003d "abcdefghijklmnopqrstuvwxyz"; Var Stringtwo \u003d Stringone.substr (5, 10); // "Fghijklmno"

Primul argument este poziția simbolului din care începe noua linie, iar al doilea argument este numărul de caractere din poziția inițială a noului șir. Acestea. (5, 10) returnează 10 caractere, începând cu 5 poziții.

Traducerea șirului la registrul superior sau inferior.

Există 4 metode de traducere. Primul 2 Traduceți șirul la majuscule:

Var Stringone \u003d "Vorbește, nu te pot auzi"; Var Stringtwo \u003d Stringone.tolocaleUppercase (); // "Vorbește, nu te pot auzi" Var Stringthree \u003d Stringone.touppercase (); // Vorbește, nu te pot auzi "

Altele 2 Traduceți un șir la litere mici:

Var Stringone \u003d "Nu trebuie să strigați"; Var Stringtwo \u003d Stringone.tolocaleLowcase (); // "nu trebuie să strigați" Var Stringthree \u003d Stringone.tolowowcase (); // "nu trebuie să strigi"

Este mai bine să utilizați metodele "Locale", deoarece În locuri diferite, de exemplu, în Turcia, afișajul înregistrării nu funcționează în întregime, deoarece suntem obișnuiți și, prin urmare, rezultatul poate fi cel pe care l-am dorit. Dacă utilizați metode "Locale", nu vor exista astfel de probleme.

Potrivire de model.

Potrivirea modelului în șir poate fi utilizată cu 2 metode care funcționează în moduri diferite.

Metodă meci () Se aplică șirului și este nevoie de o expresie regulată ca parametru:

Var șirul meu \u003d "cât de mult lemn ar putea un chuck de lemn"; vary mypattern \u003d /.ood/; var myresult \u003d mystring.match (mypattern); // ["Wood"] Var PatternLocation \u003d Myresult.Index; // 9 var originstring \u003d myresult.input // "cât de mult lemn ar putea un chuck de lemn"

Metodă exec () Se aplică obiectului de expresie obișnuit și acceptă un șir ca parametru:

Var șirul meu \u003d "cât de mult lemn ar putea un chuck de lemn"; vary mypattern \u003d /.huck/; vary myresult \u003d mypattern.exec (mystring); // ["chuck"] var modelăd \u003d myresult.index; // 27 var originstring \u003d myresult.input // "cât de mult lemn ar putea un chuck de lemn"

În ambele metode, este returnată numai prima coincidență. Dacă nu există coincidențe - returnează nUL.

De asemenea, puteți utiliza metoda cĂUTARE ()care ia o expresie regulată și returnează poziția primei coincidență de către șablon:

Var MyString \u003d "presupune"; Var PatternLocation \u003d MyString.Search (/ Ume /); // 3.

Dacă nu au existat coincidențe " -1 «.

Compararea a două rânduri pentru sortare

Puteți compara 2 linii pentru a determina care sunt primele lor alfabetică. Pentru a face acest lucru, utilizați metoda localecompare ()care returnează 3 valori posibile:

Var Mystering \u003d "pui"; Var MyStringtwo \u003d "ou"; VaCaCameFirst \u003d MyString.LocaleCompare (MyStringtwo); // -1 (returnări cromate -2) ceFamefirst \u003d mystring.localecompare ("pui"); // 0 whocamefirst \u003d mystring.localecompare ("Apple"); // 1 (randamentele cromului 2)

După cum se arată mai sus, un număr negativ este returnat dacă argumentul șirului vine după linia originală. Un număr pozitiv dacă argumentul șirului este înainte de linia sursă. Dacă este returnat 0 - Deci rândurile sunt egale.

Pentru a verifica valoarea returnată, este mai bine să utilizați dacă (rezultatul< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Vă mulțumim pentru atenția dvs., sper că ați învățat multe lucruri noi și interesante!

Articol Autor: Alex. Categorie:
Data publicării: 03/19/2013