Javascript строка конец строки

String.prototype.endsWith()

The endsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.

Try it

Syntax

endsWith(searchString) endsWith(searchString, endPosition) 

Parameters

The characters to be searched for at the end of str . Cannot be a regex. All values that are not regexes are coerced to strings, so omitting it or passing undefined causes endsWith() to search for the string «undefined» , which is rarely what you want.

The end position at which searchString is expected to be found (the index of searchString ‘s last character plus 1). Defaults to str.length .

Return value

true if the given characters are found at the end of the string, including when searchString is an empty string; otherwise, false .

Exceptions

Description

This method lets you determine whether or not a string ends with another string. This method is case-sensitive.

Examples

Using endsWith()

const str = "To be, or not to be, that is the question."; console.log(str.endsWith("question.")); // true console.log(str.endsWith("to be")); // false console.log(str.endsWith("to be", 19)); // true 

Specifications

Browser compatibility

BCD tables only load in the browser

Читайте также:  Форматы вывода даты python

See also

Found a content problem with this page?

This page was last modified on Apr 6, 2023 by MDN contributors.

Your blueprint for a better internet.

Источник

Начало строки ^ и конец $

Материал на этой странице устарел, поэтому скрыт из оглавления сайта.

Более новая информация по этой теме находится на странице https://learn.javascript.ru/regexp-anchors.

Знак каретки ‘^’ и доллара ‘$’ имеют в регулярном выражении особый смысл. Их называют «якорями» (anchor – англ.).

Каретка ^ совпадает в начале текста, а доллар $ – в конце.

Якоря являются не символами, а проверками.

До этого мы говорили о регулярных выражениях, которые ищут один или несколько символов. Если совпадение есть – эти символы включаются в результат.

А якоря – не такие. Когда поиск ходит до якоря – он проверяет, есть ли соответствие, если есть – продолжает идти по шаблону, не прибавляя ничего к результату.

Каретку ^ обычно используют, чтобы указать, что регулярное выражение необходимо проверить именно с начала текста.

Например, без каретки найдёт все числа:

var str = '100500 попугаев съели 500100 бананов!'; alert( str.match(/\d+/ig) ); // 100500, 500100 (нашло все числа)

А с кареткой – только первое:

var str = '100500 попугаев съели 500100 бананов!'; alert( str.match(/^\d+/ig) ); // 100500 (только в начале строки)

Знак доллара $ используют, чтобы указать, что паттерн должен заканчиваться в конце текста.

Аналогичный пример с долларом для поиска числа в конце:

var str = '100500 попугаев съели 500100'; alert( str.match(/\d+$/ig) ); // 500100

Оба якоря используют одновременно, если требуется, чтобы шаблон охватывал текст с начала и до конца. Обычно это требуется при валидации.

Например, мы хотим проверить, что в переменной num хранится именно десятичная дробь.

Ей соответствует регэксп \d+\.\d+ . Но простой поиск найдёт дробь в любом тексте:

var num = "ля-ля 12.34"; alert( num.match(/\d+\.\d+/ig) ); // 12.34

Наша же задача – проверить, что num целиком соответствует паттерну \d+\.\d+ .

Для этого обернём шаблон в якоря ^. $ :

var num = "ля-ля 12.34"; alert( num.match(/^\d+\.\d+$/ig) ); // null, не дробь var num = "12.34"; alert( num.match(/^\d+\.\d+$/ig) ); // 12.34, дробь!

Теперь поиск ищет начало текста, за которым идёт число, затем точка, ещё число и конец текста. Это как раз то, что нужно.

Источник

Строки

Для создания строк мы можем как напрямую присваивать переменной или константе строку:

Для работы со строками предназначен объект String , поэтому также можно использовать конструктор String:

const name = new String("Tom");

Но как правило, используется первый более краткий способ. В первом случае JavaScript при необходимости автоматически преобразует переменную примитивного типа в объект String.

Объект String имеет большой набор свойств и методов, с помощью которых мы можем манипулировать строками.

Длина строки

Свойство length указывает на длину строки:

const hello = "привет мир"; console.log(`В строке "$" $ символов`); // В строке "привет мир" 10 символов

Повторение строки

Метод repeat() позволяет создать строку путем многократного повторения другой строки. Количество повторов передается в качестве аргумента:

const hello = "hello "; console.log(hello.repeat(3)); // hello hello hello

Поиск в строке

Для поиска в строке некоторой подстроки используются методы indexOf() (индекс первого вхождения подстроки) и lastIndexOf() (индекс последнего вхождения подстроки). Эти методы принимают два параметра:

  • Подстроку, которую надо найти
  • Необязательный параметр, который указывает, с какого символа следует проводить поиск подстроки в строке

Оба этих метода возвращают индекс символа, с которого в строке начинается подстрока. Если подстрока не найдена, то возвращается число -1.

const hello = "привет мир. пока мир"; const key = "мир"; const firstPos = hello.indexOf(key); const lastPos = hello.lastIndexOf(key); console.log("Первое вхождение: ", firstPos); // 7 console.log("Последнее вхождение: ", lastPos); // 17

Еще один метод — includes() возвращает true, если строка содержит определенную подстроку.

const hello = "привет мир. пока мир"; console.log(hello.includes("мир")); // true console.log(hello.includes("миг")); // false

С помощью второго дополнительного параметра можно определить индекс, с которого будет начинаться поиск подстроки:

const hello = "привет мир. пока мир"; console.log(hello.includes("мир", 5)); // true console.log(hello.includes("привет", 6)); // false

Выбор подстроки

Для того, чтобы вырезать из строки подстроку, применяются методы substring() и slice() .

Substring

Метод substring() принимает два параметра:

  • индекс символа в строке, начиная с которого надо проводить обрезку строки. Обязательный параметр
  • индекс, до которого надо обрезать строку. Необязательный параметра — если он не указан, то обрезается вся остальная часть строки
const hello = "привет мир. пока мир"; const world = hello.substring(7, 10); // с 7-го по 10-й индекс console.log(world); // мир const bye = hello.substring(12); // c 12 индекса до конца строки console.log(bye); // пока мир

slice

Еще один метод slice также позволяет получить из строки какую-то ее часть. Она принимает два параметра:

  • индекс символа в строке, начиная с которого надо проводить обрезку строки. Обязательный параметр
  • индекс, до которого надо обрезать строку. Необязательный параметра — если он не указан, то обрезается вся остальная часть строки
const hello = "привет мир. пока мир"; const world = hello.slice(7, 10); // с 7-го по 10-й индекс console.log(world); // мир const bye = hello.slice(12); // c 12 индекса до конца строки console.log(bye); // пока мир

Можно заметить, что этот метод похож на метод substring() , тем не менее между ними есть небольшие различие. Прежде всего, в slice() начальный индекс должен быть меньше чем конечный. В substring() , если начальный индекс больше конечного, то они меняются местами (то есть substring(5, 1) будет равноценно substring(1, 5) ):

const hello = "привет мир. пока мир"; const world1 = hello.slice(6, 0); // console.log(world1); // const world2 = hello.substring(6, 0); // аналогично hello.substring(0, 6) console.log(world2); // привет

Другое отличие, что slice позволяет использовать отрицательные индексы. Отрицательный индекс указывает на индекс символа относительно конца строки. substring() же отрицательные индексы не поддерживает:

const hello = "привет мир. пока мир"; const bye1 = hello.slice(-8, -4); // с 8-го индекса с конца до 4 индекса с конца console.log(bye1); // const bye2 = hello.substring(-8, -4); // не работает console.log(bye2); //

Управление регистром

Для изменения регистра имеются методы toLowerCase() (для перевода в нижний регистр) и toUpperCase() (для перевода в верхний регистр).

const hello = "Привет Том"; console.log(hello.toLowerCase()); // привет том console.log(hello.toUpperCase()); // ПРИВЕТ ТОМ

Получение символа по индексу

Чтобы получить определенный символ в строке по индексу, можно применять методы charAt() и charCodeAt() . Оба этих метода в качестве параметра принимают индекс символа:

const hello = "Привет Том"; console.log(hello.charAt(2)); // и console.log(hello.charCodeAt(2)); // 1080

Но если в качестве результата метод charAt() возвращает сам символ, то метод charCodeAt() возвращает числовой код этого символа.

Удаление пробелов

Для удаления начальных и концевых пробелов в стоке используется метод trim() :

let hello = " Привет Том "; const beforeLength = hello.length; hello = hello.trim(); const afterLength = hello.length; console.log("Длина строки до: ", beforeLength); // 15 console.log("Длина строки после: ", afterLength); // 10

Дополнительно есть ряд методов, которые удаляют пробелы с определенной стороны строки:

  • trimStart() : удаляет пробел с начала строки
  • trimEnd() : удаляет пробел с конца строки
  • trimLeft() : удаляет пробел с левой части строки
  • trimRight() : удаляет пробел с правой части строки

Объединение строк

Метод concat() объединяет две строки:

let hello = "Привет "; let world = "мир"; hello = hello.concat(world); console.log(hello); // Привет мир

Замена подстроки

Метод replace() заменяет первое вхождение одной подстроки на другую:

let hello = "Добрый день"; hello = hello.replace("день", "вечер"); console.log(hello); // Добрый вечер

Первый параметр метода указывает, какую подстроку надо заменить, а второй параметр — на какую подстроку надо заменить.

В то же время у этого метода есть одна особенность — он заменяет только первое вхождение подстроки:

let menu = "Завтрак: каша, чай. Обед: суп, чай. Ужин: салат, чай."; menu = menu.replace("чай", "кофе"); console.log(menu); // Завтрак: каша, кофе. Обед: суп, чай. Ужин: салат, чай.

Однако еще один метод — replaceAll() позволяет заменить все вхождения подстроки:

let menu = "Завтрак: каша, чай. Обед: суп, чай. Ужин: салат, чай."; menu = menu.replaceAll("чай", "кофе"); console.log(menu); // Завтрак: каша, кофе. Обед: суп, кофе. Ужин: салат, кофе.

Разделение строки

Метод split() разбивает строку на массив подстрок по определенному разделителю. В качестве разделителя используется строка, которая передается в метод:

const message = "Сегодня была прекрасная погода"; const messageParts = message.split(" "); console.log(messageParts); // ["Сегодня", "была", "прекрасная", "погода"]

В данном случае строка разделяется по проблему, то есть в итоге в массиве messageParts окажется четыре элемента.

Проверка начала и окончания строки

Метод startsWith() возвращает true, если строка начинается с определенной подстроки. А метод endsWith() возвращает true, если строка оканчивается на определенную подстроку.

const hello = "let me speak from my heart"; console.log(hello.startsWith("let")); // true console.log(hello.startsWith("Let")); // false console.log(hello.startsWith("lets")); // false console.log(hello.endsWith("heart")); // true console.log(hello.startsWith("bart")); // false

При этом играет роль регистр символов, и из примера выше мы видим, что «let» не эквивалентно «Let».

Дополнительный второй параметр позволяет указать индекс (для startsWith — индекс с начала, а для endsWith — индекс с конца строки), относительно которого будет производиться сравнение:

const hello = "let me speak from my heart"; console.log(hello.startsWith("me", 4)); // true, "me" - 4 индекс с начала строки console.log(hello.startsWith("my", hello.length-8)); // true, "my" - 8 индекс с конца

Зполнение строки

Методы padStart() и padEnd() растянуть строку на определенное количество символов и заполнить строку слева и справа соответственно.

let hello = "hello".padStart(8); // " hello" console.log(hello); hello = "hello".padEnd(8); // "hello " console.log(hello);

Вызов «hello».padStart(8) будет рястягивать строку «hello» на 8 символов. То есть изначально в строке «hello» 5 символов, значит, к ней будет добавлено 3 символа. При чем они будут добавлено в начале строки. По умолчанию добавляемые символы представляют пробелы. Аналогично вызов «hello».padEnd(8) растянет строку на 8 символов, но оставшие символы в виде пробелов будут добавлены в конец строки.

По умолчанию эти методы используют пробелы для заполнения, но в качестве второго параметра мы можем передать методам значение, которым надо дополнить строку:

let hello = "hello".padStart(17, "JavaScript, "); // "JavaScript, hello" hello = "hello".padEnd(12, " Eugene"); // "hello Eugene"

Если добавляемое количество символов больше добавляемой строки, то добавляемая строка повторяется:

let hello = "123".padStart(6, "0"); // "000123" hello = "123".padEnd(6, "0"); // "123000"

Источник

Оцените статью