- String.prototype.replaceAll()
- Интерактивный пример
- Syntax
- Parameters
- Return value
- Описание
- Указание строки в качестве параметра
- Указание функции в качестве параметра
- Examples
- Using replaceAll
- Методы строк в JavaScript: простая шпаргалка с примерами
- Как изменить регистр
- toLowerCase
- toUpperCase
- Как объединить строки
- concat
- Как разделить строку на подстроки
- split
- Как повторить строку
- repeat
- Как найти подстроку
- charAt
- includes
- indexOf
- lastIndexOf
- endsWith
- startsWith
- search
- Как извлечь подстроку
- slice
- substring
- substr
- Как заменить подстроку
- replace
- replaceAll
- Как добавить в строку пробелы или другие символы
- padEnd
- padStart
- Как удалить пробелы в строке
- trim
- trimEnd
- trimStart
- Как работать с Юникодом
- charCodeAt
- fromCharCode
- Что думаете?
String.prototype.replaceAll()
Метод replaceAll() возвращает новую строку со всеми совпадениями pattern , который меняется на replacement . pattern может быть строкой или регулярным выражением, и replacement может быть строкой или функция возвращающая каждое совпадение.
Исходная строка остаётся без изменений.
Интерактивный пример
Syntax
const newStr = str.replaceAll(regexp|substr, newSubstr|function)
Примечание: Когда вы используете regexp вы должны установить флаг глобального поиска («g»), иначе вернётся ошибка TypeError : «replaceAll must be called with a global RegExp».
Parameters
Регулярное выражение или буква с глобальным флагом поиска («g»). Совпадения меняются на newSubstr или значении возвращённое указанной функцией function . A RegExp без глобального флага поиска («g») вернёт ошибку TypeError : «replaceAll must be called with a global RegExp».
Подстрока, которая заменится newSubstr . Обрабатывается как буквенная строка, не интерпретируется как регулярное выражение.
Новая строка, которая заменяет найденные подстроки указанные в regexp или substr параметрах. Поддерживается ряд специальных шаблонов замены; смотрите «Specifying a string as a parameter» блок ниже.
Функция вызванная при создании новой строки которая используется для замены совпадений указанных в regexp or substr . Аргументы применяемы в этой функции описываются в «Specifying a function as a parameter» блок ниже.
Return value
Новая строка, в которой все совпадения замены на указанную подстроку или специальный шаблон.
Описание
Этот метод не изменяет исходную строку. Он просто возвращает новую.
Указание строки в качестве параметра
Заменённая строка может включатся в следующие специальные шаблоны:
Pattern | Inserts |
---|---|
$$ | Вставляет «$» . |
$& | Вставлять совпадения. |
$` | Вставляет часть строки которая находится перед совпадениями (строка соответствующая шаблону). |
$’ | Вставляет часть строки которая следует после совпадения (строка соответствующая шаблону). |
$n | Где n положительное цело число меньше чем 100, вставляет n th строки указанные в скобках, частичные совпадения, при условии, что первый аргумент был RegExp object. Обратите внимание, что это 1-индексированный. |
Указание функции в качестве параметра
Вы можете передать функцию вторым параметром. Этом случае, функция вызывается после нахождения совпадений. Результат функции может быть использована как замещающая строка. (Внимание: Выше упомянутые специальные шаблоны замены в данном случае неприменимы.)
Функция может быть вызвана многократно для каждого заменённого совпадения, если регулярное выражение указано с глобальным флагом(«g»).
Функция имеет следующие аргументы:
Possible name | Supplied value |
---|---|
match | Найденная постройка. (Соответствует $& указанному выше) |
p1, p2, . | _n_th количество строк найденных групповыми скобками указанные первым параметром в регулярном выражении. (Соответствует $1 , $2 , см. выше) Для примера, если /(\a+)(\b+)/ , то p1 это \a+ , а p2 это \b+ . |
offset | Смещение совпадающей подстроки в пределах всей исследуемой строки. (Например, если вся строка была ‘abcd’, а соответствующая подстрока была ‘bc’, то этот аргумент будет равен 1.) |
string | Исследуется вся цепочка. |
(Точное количество аргументов зависит от того, является ли первый аргумент регулярным выражением — и, если да, то аргументов будет столько сколько указанно в скобках.)
Examples
Using replaceAll
Методы строк в JavaScript: простая шпаргалка с примерами
Любые текстовые данные в JavaScript считаются строками. Это примитивный тип, но язык позволяет работать с ним так, будто он является объектом. В том числе — использовать встроенные в JS методы строк, которые собраны в этой шпаргалке.
Важно: при использовании методов создаётся новая строка, которая записывается в ту же переменную вместо старой строки.
Как изменить регистр
toLowerCase
Преобразует символы в строке в нижний регистр.
"Hello Tproger".toLowerCase(); // "hello tproger"
toUpperCase
Преобразует символы в строке в верхний регистр.
"Hello Tproger".toUpperCase(); // "HELLO TPROGER"
Как объединить строки
concat
Объединяет две или более строки и возвращает одну строку.
"Hello".concat(" Tproger"); // "Hello Tproger" "Hello".concat(" T", "p", "r", "o", "g", "e", "r"); // "Hello Tproger"
Как разделить строку на подстроки
split
Разбивает строку в массив по указанному разделителю, которым может быть подстрока или регулярное выражение. Вторым параметром можно указать ограничитель.
// Получаем каждый символ "Hello Tproger".split(""); // ["H", "e", "l", "l", "o", " ", "T", "p", "r", "o", "g", "e", "r"] // Получаем каждое слово из строки "Hello Tproger".split(" "); //["Hello", "Tproger"] // Устанавливаем ограничитель "Hello Tproger".split(" ", 1); //["Hello"]
Как повторить строку
repeat
Принимает в качестве параметра число и повторяет строку указанное количество раз.
"Tproger ".repeat(3); // "Tproger Tproger Tproger "
Как найти подстроку
charAt
Возвращает символ по указанному индексу.
includes
Проверяет, содержит ли строка указанную подстроку. Возвращает значение true или false. Вторым параметром можно указать позицию в строке, с которой следует начать поиск.
"Hello Tproger".includes("Tproger"); // true "Hello Tproger".includes("Hello", 1); // false
indexOf
Возвращает индекс первого найденного вхождения указанного значения. Поиск ведётся от начала до конца строки. Если совпадений нет, возвращает -1. Вторым параметром можно передать позицию, с которой следует начать поиск.
"Hello World".indexOf("o"); // 4 "Hello World".indexOf("o", 5); // 7
lastIndexOf
Возвращает индекс последнего найденного вхождения указанного значения. Поиск ведётся от конца к началу строки. Если совпадений нет, возвращает -1. Вторым параметром можно передать позицию, с которой следует начать поиск.
"Hello World".lastIndexOf("o"); // 7 "Hello World".lastIndexOf("o", 5); // 4
endsWith
Проверяет, заканчивается ли строка символами, заданными первым параметром. Возвращает true или false. Есть второй необязательный параметр — ограничитель по диапазону поиска. По умолчанию он равен длине строки.
"Hello Tproger".endsWith("Tproger"); // true "Hello Tproger".endsWith("Tproger", 12); // false
startsWith
Проверяет, начинается ли строка с указанных символов. Возвращает true или false. Вторым параметром можно указать индекс, с которого следует начать проверку.
"Hello Tproger".startsWith("Hello"); // true "Hello Tproger".startsWith("Hello", 1); // false
search
Проверяет, есть ли в строке указанное значение или регулярное выражение и возвращает индекс начала совпадения.
"hi, hello, hey".search("hello"); // 4
Как извлечь подстроку
slice
Извлекает часть строки и возвращает новую строку. Обязательный параметр — начало извлечения. Вторым параметром можно установить границу (по умолчанию — до конца строки).
"Методы строк на Tproger".slice(16); // "Tproger" "Методы строк на Tproger".slice(16, 21); // "Tprog" // Отрицательные значения тоже работают "Методы строк на Tproger".slice(-7); // "Tproger" "Методы строк на Tproger".slice(-7, -2); // "Tprog"
substring
Извлекает символы из строки между двумя указанными индексами. Второй индекс указывать не обязательно. В таком случае будут извлечены все символы от начала до конца строки. В отличие от slice, можно задавать start больше, чем end. Отрицательные значения не поддерживаются, они интерпретируются как 0.
"Методы строк на Tproger".substring(5, 2); // "тод"
substr
Извлекает часть строки указанной длины. Первым параметром принимает стартовую позицию, вторым — длину. Значение первого параметра может быть отрицательным, тогда позиция определяется с конца строки.
"Методы строк на Tproger".substr(7, 5); // "строк" "Методы строк на Tproger".substr(-7, 5); // "Tprog"
Как заменить подстроку
replace
Ищет в строке указанное значение или регулярное выражение и возвращает новую строку, в которой выполнена замена на второй параметр. Можно заменить найденные значения другой строкой или передать функцию для работы над совпадениями.
"hi, hello, hi".replace("hi", "hey"); // "hey, hello, hi" "hi, hello, hi".replace(/hi/g, "hey"); // "hey, hello, hey"
replaceAll
Даёт такой же результат, как метод replace() с глобальным флагом g. Заменяет все найденные совпадения другой строкой или переданной функцией.
"hi, hello, hi".replaceAll("hi", "hey"); // "hey, hello, hey"
Как добавить в строку пробелы или другие символы
padEnd
Добавляет в конце отступы, пока строка не достигнет длины, заданной первым параметром. Вторым параметром можно указать другой символ вместо пробела.
"Hello Tproger".padEnd(20, "*"); // "Hello Tproger*******"
padStart
Добавляет в начале отступы, пока строка не достигнет длины, заданной первым параметром. Вторым параметром можно указать другой символ вместо пробела.
"Hello Tproger".padStart(20, "*"); // "*******Hello Tproger"
Как удалить пробелы в строке
trim
Обрезает пробелы с обоих концов строки.
" Hello Tproger ".trim(); // "Hello Tproger"
trimEnd
Обрезает пробелы в конце строки
" Hello Tproger ".trimEnd(); // " Hello Tproger"
trimStart
Обрезает пробелы в начале строки
" Hello Tproger ".trimStart(); // "Hello Tproger "
Как работать с Юникодом
charCodeAt
Возвращает числовое значение Юникода по указанному индексу. Обратите внимание: у букв в верхнем и нижнем регистрах разные коды.
"T".charCodeAt() // 84 "t".charCodeAt() // 116
fromCharCode
Преобразует числовые значения Юникода в читаемые символы.
String.fromCharCode(72, 101, 108, 108, 111); // "Hello"
Примечание: при работе с эмодзи, редкими математическими символами, иероглифами нужно помнить о суррогатных парах. Это символы, которые записываются двумя 16-битными словами. Длина таких строк — 2.
'?'.length; // 2, редкий китайский иероглиф
Суррогатные пары не учитывались при создании JS и методы строк charCodeAt / fromCharCode обрабатывают их некорректно. Правильно работают с суррогатными парами редкие методы String.fromCodePoint и str.codePointAt, которые появились в языке недавно.
Для работы со строками в JS есть не только встроенные методы, но и сторонние библиотеки. Они решают задачи более сложные задачи. Но подключать их имеет смысл только в том случае, если возможностей встроенных методов действительно не хватает.
Больше полезных материалов по JS:
Что думаете?
По сути ничего нового , да и чтоб найти хорошую работу не нужно никакого cv , нужно просто быть специалистом и главное иметь желание работать , всё просто Ватсон, да можно найти хорошую работу и без опыта , легко, главное нужно иметь большое желание и немного быть не рукожоп#м ))). Иногда напишут такие требования что сам IT Бог не разберется , а по сути нужен стандартный сисадмин , с универской базой, а понапишут такую ахинею , что никая Википедия таких терминов и знать не знает , кто пишет такие требования idiotusî.))), Хороший айтишник тот который не работает, за него компы пашут и не ломаются, собаки ))). Учись студент
Слава, скиньте, пожалуйста, Ваше резюме, мы с радостью познакомимся с Вами. На данный момент у нас штат полностью укомплектован, но кто знает? талантливым специалистам мы всегда рады.
Сколько раз еще нужно будет повторить простой чек-лист, чтобы исчезли треш-резюме — риторический вопрос.Впрочем так же как и треш-собеседования 🙂