JavaScript substr() a substring() – Jaký je rozdíl?

JavaScript má dvě podobně vypadající metody pro extrakci podřetězců z řetězců – substr()substring() . Tento článek vysvětluje rozdíl.

Tyto dvě funkce vykonávají téměř stejnou funkci a mají téměř stejný název a na první pohled se dokonce zdá, že mají stejnou syntaxi – ale jsou odlišné!

Zde je syntaxe pro každou funkci – vedle sebe, abyste viděli rozdíl.

Rychlé připomenutí o Indexech

 index je celé číslo představující pozici položky v sérii. Indexy začněte počítat od 0 – takže první index je index 0 , druhý je index 1 , a tak dále.

Protože řetězce jsou série znaků, pozici každého znaku lze popsat jeho indexem .

Vezměte například řetězec:

abcdefg

Písmeno a je na indexu 0, a písmeno c je na indexu 2 .

JavaScript substr() Syntaxe

Syntaxe JavaScriptu substr() metoda je následující:

string.substr(START, LENGTH)

Všimněte si, že:

  • substr() vrátí část daného řetězce , počínaje indexem START na zadanou DÉLKU
  • START je index postavy, na které chcete začít
  • DÉLKA je maximální počet znaků chcete zahrnout
    • Pokud není zadán, bude vrácen zbytek řetězce začínající na START
    • Pokud je větší než zbývající počet znaků v řetězci, bude vrácen zbytek řetězce začínající na START

substr() Příklad

var myString = "Ahoy!"; // Define a string
var mySubstring = myString.substr(1, 4); // Returns "hoy!"

JavaScript substring() Syntaxe

Syntaxe pro substring() metoda je následující:

string.substring(START, END)

Všimněte si, že:

  • substring() vrátí část daného řetězce , počínaje indexem START a končící na indexu END
  • START je index postavy, na které chcete začít
  • KONEC je index postavy, na které chcete končit
    • Je volitelné – pokud není zadáno, vrátí se zbytek řetězce
    • Také není součástí dodávky ve výsledném podřetězci – vše  KONEC je zahrnut pouze

substring() Příklad

var myString = "Ahoy!"; // Define a string
var mySubstring = myString.substring(1, 4); // Returns "hoy"

Všimněte si, že substring() vrátil jiný výsledek než substr() – protože používá index pro výpočet koncové pozice namísto maximálního počtu znaků.

Rozdíl (je to druhý parametr)

Jak je uvedeno výše, rozdíl je druhým parametrem. substring() přijímá index zastavit, zatímco substr() přijímá maximální počet znaků vrátit se.

JavaScript rozdělit() funkci lze také použít k vytvoření podřetězců z řetězců.