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

У нас есть строка:

var stroka = "honda/хонда"

Мы хотим отсечь лишнюю часть, которая начинается после знака косой черты — «/«. Косую черту тоже нужно удалить. Как это сделать?

Нам нужно воспользоваться регулярным выражением и методом экземпляров строк replace().

var new_str = stroka.replace(/\/.+/,"")

new_str
"honda"

В итоге мы получили строку «honda«.

Отсечение строки по символу косой черты - JavaScript
Отсечение строки по символу косой черты — JavaScript

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

Метод replace() принимает два параметра — searchValue и replaceValue.

  • Первый параметр searchValue — это искомое значение. (Последовательность символов, которую хотим найти)
  • Второй параметр replaceValue — это заменяемое значение. (Найденное заменим на пустую строку — тем самым отсечём/удалим)

Мы хотим найти символ «/» — убрать его и всё что после него и до конца. Синтаксис регулярных выражений состоит из двух косых линий — «/ /». Чтобы не путать синтаксис с символом нужно использовать экранирующий символ обратной косой линии — «\«.

Пустое регулярное выражение:

/ /

Регулярное выражение с дизъюнкцией и экранирующим символом:

/\//

Регулярное выражение с дизъюнкцией, экранирующим символом, точкой любого символа и квантификатором:

/\/.+/

В нашем случае будет найдена косая линия, потом справа от неё будет найден любой символ и потом квантификатор «+» будет подставлять любой символ до самого конца строки. В итоге искомое значение примет вид:

«/хонда»

Этот кусок будет найден в строке и заменён на пустоту. Нам вернётся оставшаяся часть.

Альтернативная запись с использованием юникода:

var new_str = stroka.replace(/\u002F.+/,"")

 

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

Стандарт ECMAScript — Раздел «22.1.3.17 String.prototype.replace ( searchValue, replaceValue )» — https://tc39.es/ecma262/#sec-string.prototype.replace

Стандарт ECMAScript — Раздел «22.2.2.8 Atom» — https://tc39.es/ecma262/#sec-atom

Поделись записью