JavaScript | Как удалить первый символ в строке?

JavaScript | Как удалить первый символ в строке?

Есть строка:

var stroka = "/Chevrolet"

Нам нужно удалить из этой строки первый символ косой линии «/».

 

Видео

 

Способ № 1 — метод replace()

Можно воспользоваться регулярными выражениями и произвести сопоставление строки по первому символу строки.

stroka.replace(/^./,"")
"Chevrolet"

Мы меняем найденное на пустую строку. Результат:

Удаляем первый символ в строке регулярным выражением - JavaScript
Удаляем первый символ в строке регулярным выражением — JavaScript

 

Как это работает?

Регулярное выражение в JavaScript обозначается двумя косыми линиями / /. Между этими линиями записывается конструкция сопоставления — шаблон (pattern). Знак стрелки ^ означает левую границу строки. Знак точки . означает один какой-то символ. Такое сопоставление по строке возвращает нам массив. Это не обычный массив.

Массив из регулярного выражения - JavaScript
Массив из регулярного выражения — JavaScript

Всё что нас интересует в этом массиве, так это только значения элементов, которые обозначаются целочисленными индексами. В данном случае нам интересно только значение под индексом 0 (ноль). Этим значением является косая линия.

Когда мы закинем в первый параметр метода replace() это регулярное выражение, тогда в строке будет найден символ «/» и заменён на «ничего». То есть метод вернёт нам новую строку без первого символа.

Ещё вариант:

"/Chevrolet".replace(/./,"")
"Chevrolet"

В этом случае сопоставление также идёт слева направо и после нахождения любого одного символа производит замену. Глобального флага нет, поэтому сопоставление пройдёт один раз и первый символ удалится.

 

Способ № 2 — метод slice()

Воспользуемся методом slice() объекта -прототипа String.

String.prototype.slice ( start, end )

Метод slice принимает два аргумента, start и end, и возвращает подстроку результата преобразования этого объекта в String, начиная с начала индекса start и до конца индекса end, но не включая его (или до конца String, если end является undefined). Если start отрицательный, он обрабатывается как sourceLength + start, где sourceLength — длина строки. Если end отрицательный, он обрабатывается как sourceLength + end, где sourceLength — длина строки. Результатом является значение String, а не объект String.

stroka.slice(1)
// Chevrolet

Мы передали только параметр start. Значение «1» указывает на номер индекса символа в строке. Индексация символов начинается с нуля (как в массивах). То есть под индексом 1 находится второй символ, то есть нам вернётся строка со второго символа, а значит первый символ просто отбросится.

Удалили первый символ в строке - JavaScript
Удалили первый символ в строке — JavaScript

ВАЖНО! Метод slice() возвращает новую строку. Это значит, что оригинальная строка на которой вызывается метод slice() не изменяется.

 

Свой метод

Можно расширить стандартный набор методов языка JavaScript для объектов-прототипов String и написать свой собственный.

String.prototype.delOneFirst = function () {
   return this.slice(1)
}

Теперь можно протестировать вызов метода delOneFirst() на разных строках:

Свой метод delOneFirst для строк - JavaScript
Свой метод delOneFirst для строк — JavaScript

 

Информационные ссылки

JavaScript | Как удалить первый и последний символ в строке?

JavaScript | Как удалить последний символ в строке?

JavaScript | Строки (String)

JavaScript | Утверждения

Официальная страница стандарта ECMAScript — Объект Stringhttps://tc39.es/ecma262/#sec-string-objects

Метод slice()https://tc39.es/ecma262/#sec-string.prototype.slice