StartsWith: примеры (JAVASCRIPT)

Использование метода 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: Проверка нескольких вариантов начала строки:

Пример javascript
function checkProtocol(url) {
    return url.startsWith('http://') || url.startsWith('https://');
}
console.log(checkProtocol('https://example.com'));
true

Пример 2: Использование в цепочке методов для обработки строк:

Пример javascript
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: Игнорирование определенного префикса при проверке:

Пример javascript
const commands = ['/start', '/help', 'message', '/settings'];
const systemCommands = commands.filter(cmd => cmd.startsWith('/'));
console.log(systemCommands);
['/start', '/help', '/settings']

Пример 4: Проверка с динамической позицией на основе длины префикса:

Пример javascript
const processText = (text, prefix) => {
    if (text.startsWith(prefix, prefix.length * 2)) {
        return 'Повторение префикса обнаружено';
    }
    return 'Повторения нет';
};
console.log(processText('abcabcstart', 'abc'));
Повторение префикса обнаружено

Пример 5: Обработка строк с различными символами Unicode:

Пример javascript
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("При");

JS startsWith function comments

En
StartsWith Determines whether a string begins with the characters of a specified string