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

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.+/,"")

 

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

JavaScript | Как обрезать строку до символа?

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

Стандарт 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