TypeScript:
Извлечение подстрок
Как это делать:
В TypeScript строки разбиваются на части с помощью методов вроде substring()
, slice()
и includes()
из ES6 для поиска текста в строках.
let fullString: string = "Привет, энтузиасты TypeScript!";
// Взять с 7 по 18 символ
let substr: string = fullString.substring(7, 18);
console.log(substr); // Выводит: TypeScript
// То же самое, но с использованием slice()
let sliced: string = fullString.slice(7, 18);
console.log(sliced); // Выводит: TypeScript
// Проверка на существование подстроки
let exists: boolean = fullString.includes("TypeScript");
console.log(exists); // Выводит: true
Глубже:
Когда-то манипуляции со строками были более неудобными — подумайте о функциях строк в C. Теперь JavaScript и TypeScript предлагают методы, которые обрабатывают Unicode, учитывают кодировку символов и работают непосредственно с объектами строк. substring()
и slice()
похожи, но с нюансом: slice()
может принимать отрицательные индексы, обратно отсчитывая от конца. substring()
обрабатывает их как нули. В ситуациях, когда важна производительность, выбор между ними может иметь значение, но для повседневного использования это примерно одно и то же.
// Использование отрицательного индекса с slice
let endSliced: string = fullString.slice(-25, -7);
console.log(endSliced); // Выводит: Привет, Type
Что касается includes()
, это находка для читаемости по сравнению с классическим indexOf()
, делая ваши намерения понятными с первого взгляда. Больше нет необходимости в if (string.indexOf('некий текст') !== -1)
; достаточно прямолинейного if (string.includes('некий текст'))
.
Смотрите также
- Руководство по TypeScript о строках, для более подробного ознакомления с использованием типов
'string'
: Строка TypeScript - Документация MDN Web Docs о методах строк в JavaScript, применимых для TypeScript: Строка MDN
- Для понимания больше о Unicode и JavaScript (а следовательно, и TypeScript), ознакомьтесь с Понимание внутренней кодировки символов в JavaScript: UCS-2? UTF-16?