StartsWith: примеры (JAVASCRIPT)
startsWith(searchString, position?): booleanОсновы метода startsWith
Метод startsWith() проверяет, начинается ли строка с символов указанной подстроки. Метод возвращает true или false. Это часто применяется для валидации ввода, обработки путей, фильтрации данных или определения формата строки.
Синтаксис метода: str.startsWith(searchString[, position])
Параметры:
- searchString - обязательный. Символы, которые ищутся в начале строки.
- position - необязательный. Позиция в строке, с которой начинается поиск. По умолчанию равен 0. Если указан, проверка начинается с указанного индекса.
Возвращаемое значение: логическое значение true, если строка начинается с указанных символов, и false в противном случае.
Базовые примеры использования
Простые случаи применения метода с разными параметрами.
Пример 1: Базовая проверка:
const str = 'Привет, мир!';
console.log(str.startsWith('Привет'));true
Пример 2: Проверка с учетом регистра:
console.log('JavaScript'.startsWith('java'));false
Пример 3: Использование второго параметра:
const str = 'Программирование';
console.log(str.startsWith('грамм', 3));true
Пример 4: Возврат false при отсутствии соответствия:
console.log('Текст'.startsWith('кст'));false
Похожие методы в JavaScript
endsWith() - проверяет, заканчивается ли строка указанными символами. Используется, когда нужно проверить окончание строки, например расширение файла.
includes() - определяет, содержится ли подстрока в любом месте строки. Применяется для общего поиска, а не только в начале.
indexOf() - возвращает индекс первого вхождения подстроки. Подходит, когда нужна позиция, а не логический результат.
test() с регулярными выражениями - обеспечивает более сложные проверки с использованием паттернов, например, проверку на несколько вариантов начала строки.
Распространенные ошибки
Ошибка 1: Передача нестрокового значения в searchString:
'Текст'.startsWith(123);Uncaught TypeError: 123 is not a string
Ошибка 2: Неявное преобразование при передаче null или undefined:
'Строка'.startsWith(null);false (преобразуется в "null")
Ошибка 3: Ожидание проверки без учета регистра:
console.log('JavaScript'.startsWith('javascript'));false
Ошибка 4: Передача отрицательной позиции:
'abc'.startsWith('b', -1);true (отрицательная позиция трактуется как 0)
Изменения в спецификации
Метод startsWith() был добавлен в ECMAScript 2015 (ES6). С момента добавления существенных изменений не было. В более ранних версиях JavaScript метод отсутствовал, что требовало использования полифилов или альтернативных подходов.
Расширенные примеры применения
Пример 1: Проверка нескольких вариантов начала строки:
function checkProtocol(url) {
return url.startsWith('http://') || url.startsWith('https://');
}
console.log(checkProtocol('https://example.com'));true
Пример 2: Использование в цепочке методов для обработки строк:
const files = ['index.html', 'script.js', 'style.css', 'README.md'];
const htmlFiles = files.filter(file => file.startsWith('index') || file.endsWith('.html'));
console.log(htmlFiles);['index.html']
Пример 3: Игнорирование определенного префикса при проверке:
const commands = ['/start', '/help', 'message', '/settings'];
const systemCommands = commands.filter(cmd => cmd.startsWith('/'));
console.log(systemCommands);['/start', '/help', '/settings']
Пример 4: Проверка с динамической позицией на основе длины префикса:
const processText = (text, prefix) => {
if (text.startsWith(prefix, prefix.length * 2)) {
return 'Повторение префикса обнаружено';
}
return 'Повторения нет';
};
console.log(processText('abcabcstart', 'abc'));Повторение префикса обнаружено
Пример 5: Обработка строк с различными символами Unicode:
console.log('????????????'.startsWith('????'));
console.log('café'.startsWith('caf'));true true
Аналоги в других языках программирования
Python: методы startswith() и str.startswith(), которые могут принимать кортеж префиксов для проверки.
text = "Программирование"
print(text.startswith("Прог"))True
PHP: функция str_starts_with() (доступна с PHP 8) и strpos() === 0 для более старых версий.
$text = "Пример текста";
var_dump(str_starts_with($text, "Пример"));bool(true)
MySQL: оператор LIKE с шаблоном или функция LOCATE().
SELECT * FROM table WHERE column LIKE 'нач%';C#: метод String.StartsWith() с поддержкой сравнения с учетом культуры.
string str = "Пример";
bool result = str.StartsWith("При");