JavaScript:
Wycinanie podłańcuchów
How to:
JavaScript posiada kilka metod do wydobywania podłańcuchów: slice()
, substring()
, i substr()
(ale uwaga, substr()
jest przestarzała!). Oto jak działają:
let text = "Zakopane jest super!";
// Użycie slice()
let sliced = text.slice(0, 8);
console.log(sliced); // "Zakopane"
// Użycie substring()
let substringed = text.substring(0, 8);
console.log(substringed); // "Zakopane"
// Użycie substr() - ale lepiej unikać
let substrd = text.substr(0, 8);
console.log(substrd); // "Zakopane"
Deep Dive
Te metody mają swoje korzenie w językach, z których JavaScript czerpał inspiracje, jak Java czy C. Co ważne, substr()
ma już etykietę przestarzałej i może zostać usunięta w przyszłych wersjach JavaScriptu, więc skłaniajmy się ku slice()
czy substring()
. Slice()
i substring()
różnią się tym, jak sobie radzą z ujemnymi indeksami (slice() je akceptuje, substring() zamienia ujemne indeksy na 0) i kilkoma innymi niuansami, które warto poznać po głębszym zanurzeniu w dokumentację.
// slice() z ujemnymi indeksami
let negativeSlice = text.slice(-7, -1);
console.log(negativeSlice); // " jest s"
// substring() zamieni ujemne indeksy na 0
let negativeSubstring = text.substring(-7, 8); // To jest jak text.substring(0, 8);
console.log(negativeSubstring); // "Zakopane"
Czasami jednak chcemy użyć wyrażeń regularnych (regex), by wyłowić bardziej skomplikowane wzorce. Język JavaScript umożliwia takie manewry dzięki metodzie match()
.
let complexText = "ID: 12345, Data: 2023-01-30";
let regex = /ID: (\d+), Data: (\d{4}-\d{2}-\d{2})/;
let matches = complexText.match(regex);
console.log(matches[1]); // "12345" - ekstrakcja ID
console.log(matches[2]); // "2023-01-30" - ekstrakcja daty
See Also:
- MDN Web Docs na temat
slice()
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice - MDN Web Docs na temat
substring()
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring - MDN Web Docs na temat wyrażeń regularnych - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions