JavaScript merkkijonometodit

字符串方法帮助您处理字符串。

字符串方法和属性

原始值,比如“Bill Gates”,无法拥有属性和方法(因为它们不是对象)。

但是通过 JavaScript,方法和属性也可用于原始值,因为在执行方法和属性时 JavaScript 将原始值视为对象。

字符串长度

length 属性返回字符串的长度:

Esimerkki

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Kokeile itse

查找字符串中的字符串

indexOf() 方法返回字符串中指定文本首次出现的索引(位置):

Esimerkki

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

Kokeile itse

JavaScript 从零计算位置。

0 是字符串中的第一个位置,1 是第二个,2 是第三个 ...

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引:

Esimerkki

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

Kokeile itse

如果未找到文本, indexOf()lastIndexOf() 均返回 -1。

Esimerkki

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

Kokeile itse

两种方法都接受作为检索起始位置的第二个参数。

Esimerkki

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

Kokeile itse

lastIndexOf() 方法向后进行检索(从尾到头),这意味着:假如第二个参数是 50,则从位置 50 开始检索,直到字符串的起点。

Esimerkki

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

Kokeile itse

检索字符串中的字符串

search() 方法搜索特定值的字符串,并返回匹配的位置:

Esimerkki

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

Kokeile itse

Oletko huomannut sen?

两种方法,indexOf() ja search(),onSamanarvoiset.

Nämä kaksi menetelmää ovat eriäviä. Ero on siinä:

  • search() -menetelmä ei voi asettaa toista alkusijaintiparametria.
  • indexOf() -menetelmä ei voi asettaa vahvempia hakuarvoja(säännöllinen lauseke).

TutustutRegulaarinen lausekeopit nämä vahvemmat hakuarvot.

Poimi osa merkkijonosta

On kolme tapaa poimia osa merkkijonosta:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

slice() -menetelmä

slice() Poimi merkkijonon osa ja palauta poimittu osa uudessa merkkijonossa.

Tämä menetelmä asettaa kaksi parametria:alkusijainnin(alkupaikka),loppusijainnin(loppupaikka).

Tämä esimerkki leikkaa merkkijonon osan 7:stä 13:een.

Esimerkki

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

res tulostuloksen on:

Banana

Kokeile itse

Jos jokin parametri on negatiivinen,sijoitus lasketaan merkkijonon lopusta.

Tämä esimerkki leikkaa merkkijonon osan -12:sta -6:een.

Esimerkki

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);

res tulostuloksen on:

Banana

Kokeile itse

Jos toista parametria ei mainita,tämä menetelmä leikkaa merkkijonon jäljelle jäävän osan:

Esimerkki

var res = str.slice(7);

Kokeile itse

Tai laske alusta loppuun:

Esimerkki

var res = str.slice(-13);

Kokeile itse

Vinkki:Negatiiviset sijainnit eivät ole käytettävissä Internet Explorer 8 ja aikaisemmissa versioissa.

substring() -menetelmä

substring() On samanlainen slice().

Ero on siinä substring() Negatiiviset indeksit eivät ole sallittuja.

Esimerkki

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

res tulostuloksen on:

Banana

Kokeile itse

Jos toista parametria ei mainita,tämä substring() Leikkaa merkkijonon jäljelle jäävän osan.

substr() -menetelmä

substr() On samanlainen slice().

Ero on siinä,että toinen parametri määrittää poistettavan osanPituus.

Esimerkki

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

res tulostuloksen on:

Banana

Kokeile itse

Jos toista parametria ei mainita,tämä substr() leikkaa merkkijonon jäljelle jäävän osan.

Esimerkki

var str = "Apple, Banana, Mango";
var res = str.substr(7);

Kokeile itse

res tulostuloksen on:

Banana, Mango

Jos ensimmäinen parametri on negatiivinen,sijoitus lasketaan merkkijonon lopusta.

Esimerkki

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

Kokeile itse

res tulostuloksen on:

Mango

Toisen parametrin ei voi olla negatiivinen,koska se määrittää pituuden。

Korvaa merkkijonon sisältö

replace() Metodi korvaa merkkijonossa määritetyn arvon toisella arvolla:

Esimerkki

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3School");

Kokeile itse

replace() menetelmä ei muuta sitä merkkijonoa, jota se kutsuu. Se palauttaa uuden merkkijonon.

Oletusarvoisesti,replace() korvataan vain ensimmäinen vastaava:

Esimerkki

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

Kokeile itse

Oletusarvoisesti,replace() Oletetaan, että korvaus on suurta ja pientä kirjainta tietoinen. Näin ollen ei korvata:

Esimerkki

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

Kokeile itse

Jos haluat suorittaa suurta ja pientä kirjainta ei huomioiva korvaus, käytä regulaarisen lausekkeen /i((ei huomioi suurta ja pientä kirjainta)):

Esimerkki

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

Kokeile itse

Huomaa, että regulaarinen lauseke ei sisällä lainausmerkkejä.

Jos haluat korvata kaikki vastaavat, käytä regulaarisen lausekkeen g Merkit (globaalin hakun käyttöön):

Esimerkki

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

Kokeile itse

Opit lisää JavaScriptin regulaarisista lausekkeista tässä luvussaRegulaarinen lausekesisältö.

Muunna suureksi ja pieneksi

Kautta toUpperCase() Muunna merkkijono isoin kirjaimiksi:

Esimerkki

var text1 = "Hello World!";       // merkkijono
var text2 = text1.toUpperCase();  // text2 on muutettu isoin kirjaimin oleva text1

Kokeile itse

Kautta toLowerCase() Muunna merkkijono pieniksi kirjaimiksi:

Esimerkki

var text1 = "Hello World!";       // merkkijono
var text2 = text1.toLowerCase();  // text2 on muutettu pienillä kirjaimilla oleva text1

Kokeile itse

concat() -menetelmä

concat() Yhdistä kaksi tai useampaa merkkijonoa:

Esimerkki

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

Kokeile itse

concat() Metodi voidaan käyttää korvaamaan lisäyslaskin. Alle olevat kaksi riviä ovat yhtä hyödyllisiä:

Esimerkki

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

Kaikki merkkijonometodit palauttavat uuden merkkijonon. Ne eivät muuta alkuperäistä merkkijonoa.

Virallisesti sanottuna: merkkijono on muuttumaton: merkkijonoa ei voi muuttaa, vain korvata.

String.trim()

trim() Metodi poistaa merkkijonon molemmilta puolilta tyhjät merkit:

Esimerkki

var str = "       Hello World!        ";
alert(str.trim());

Varoitus:Internet Explorer 8 tai aikaisemmat versiot eivät tue trim() Metodi.

Kokeile itse

Jos haluat tukea IE 8:aa, voit käyttää yhdessä säännöllistä lauseketta: replace() Metodi korvaa:

Esimerkki

var str = "       Hello World!        ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));

Kokeile itse

Voit myös käyttää yllä olevaa replace-mallia lisätäksesi trim-funktion JavaScript String.prototypeen:

Esimerkki

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
var str = "       Hello World!        ";
alert(str.trim());

Kokeile itse

Merkkijonon merkkien poistaminen

Nämä ovat kaksi merkkijonon merkkien poistamista:TurvallinenMetodi:

  • charAt(position)
  • charCodeAt(position)

charAt() metodi

charAt() Metodi palauttaa merkkijonon määritellyssä indeksissä olevan merkkijonon:

Esimerkki

var str = "HELLO WORLD";
str.charAt(0);            // Palauttaa H

Kokeile itse

charCodeAt() metodi

charCodeAt() Metodi palauttaa merkkijonon määritellyssä indeksissä olevan merkin unicode-koodin:

Esimerkki

var str = "HELLO WORLD";
str.charCodeAt(0);         // Palauttaa 72

Kokeile itse

Ominaisuuslaskenta

ECMAScript 5 (2009) sallii merkkijonon ominaisuuslaskennan [ ]:

Esimerkki

var str = "HELLO WORLD";
str[0];                   // Palauttaa H

Kokeile itse

Ominaisuuslaskenta ei ole aina luotettavaa:

  • Ei ole yhteensopiva Internet Explorer 7 tai aikaisempien versioiden kanssa
  • Se tekee merkkijonosta näyttämään tältä kuin taulukolta (vaikka se ei ole)
  • Jos ei löydy merkkiä:[ ] Palauttaa undefinedja charAt() Palauttaa tyhjän merkkijonon.
  • Se on lukuun ottamatta muokattavaa.str[0] = "A" Ei aiheuta virhettä (mutta ei toimi oikein!)

Esimerkki

var str = "HELLO WORLD";
str[0] = "A";             // Ei aiheuta virhettä, mutta ei toimi oikein
str[0];                   // Palauttaa H

Kokeile itse

Vinkki:Jos haluat käsitellä merkkijonoa taulukon tavoin, voit ensin muuntaa sen taulukoksi.

Muuntaa merkkijonon taulukoksi

Voit split() Muunna merkkijono taulukoksi:

Esimerkki

var txt = "a,b,c,d,e";   // Merkkijono
txt.split(",");          // Erota pilkulla
txt.split(" ");          // Erota välilyönnillä
txt.split("|");          // Erota viivalla

Kokeile itse

Jos erotinmerkki on "\"

Esimerkki

var txt = "Hello";       // Merkkijono
txt.split("\"");           // Erota merkkijonon osiin

Kokeile itse

Täydellinen String-referenssikirja

Täydelliselle referenssikirjalle käy suoraan JavaScript-merkkijonon-referenssikirja.

Tämä oppikirja sisältää kaikkien merkkijonon ominaisuuksien ja metodioiden kuvaukset ja esimerkit.