Spec-Zone.ru › JavaScript

String

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Объект String используется для представления и обработки последовательности символов.

Описание

Строки полезны для хранения данных, которые можно представить в текстовом виде. К наиболее часто используемым операциям со строками относятся проверка их length, создание строк и их объединение с помощью строковых операторов + и +=, проверка наличия подстрок или определение их положения с помощью метода indexOf(), а также извлечение подстрок с помощью метода substring().

Создание строк

Строки можно создавать как примитивы, используя строковые литералы, или как объекты с помощью конструктора String():

const string1 = "A string primitive";
const string2 = 'Also a string primitive';
const string3 = `Yet another string primitive`;
const string4 = new String("A String object");

У примитивов-строк и объектов-строк много общего, но есть и важные различия и особенности. См. раздел «Примитивы-строки и объекты String» ниже.

Строковые литералы можно записывать в одинарных или двойных кавычках, которые обрабатываются одинаково, либо с помощью обратной кавычки `. Последняя форма задаёт шаблонный литерал, позволяющий интерполировать выражения. Подробнее о синтаксисе строковых литералов см. в разделе лексической грамматики.

Доступ к символам

Есть два способа получить доступ к отдельному символу строки. Первый — метод charAt():

"cat".charAt(1); // gives value "a"

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

"cat"[1]; // gives value "a"

При доступе к символам с помощью квадратных скобок удалить эти свойства или присвоить им значение не получится. Соответствующие свойства нельзя изменять или настраивать. (Подробнее см. в разделе Object.defineProperty().)

Сравнение строк

Для сравнения строк используйте операторы «меньше» и «больше»:

const a = "a";
const b = "b";
if (a < b) {
  // true
  console.log(`${a} is less than ${b}`);
} else if (a > b) {
  console.log(`${a} is greater than ${b}`);
} else {
  console.log(`${a} and ${b} are equal.`);
}

Обратите внимание, что все операторы сравнения, включая === и ==, сравнивают строки с учётом регистра. Обычно для сравнения строк без учёта регистра обе строки сначала приводят к одному регистру (верхнему или нижнему).

function areEqualCaseInsensitive(str1, str2) {
  return str1.toUpperCase() === str2.toUpperCase();
}

Выбор между преобразованием с помощью toUpperCase() и toLowerCase() в большинстве случаев произволен, и ни один из этих методов не обеспечивает полной надёжности за пределами латинского алфавита. Например, немецкие строчные буквы ß и ss преобразуются в SS с помощью toUpperCase(), тогда как турецкая буква ı будет ошибочно признана отличной от I методом toLowerCase(), если специально не использовать toLocaleLowerCase("tr").

const areEqualInUpperCase = (str1, str2) =>
  str1.toUpperCase() === str2.toUpperCase();
const areEqualInLowerCase = (str1, str2) =>
  str1.toLowerCase() === str2.toLowerCase();

areEqualInUpperCase("ß", "ss"); // true; should be false
areEqualInLowerCase("ı", "I"); // false; should be true

Надёжное решение с учётом локали для проверки равенства без учёта регистра — использовать API Intl.Collator или метод строки localeCompare() — у них одинаковый интерфейс — и задать для параметра sensitivity значение "accent" или "base".

const areEqual = (str1, str2, locale = "en-US") =>
  str1.localeCompare(str2, locale, { sensitivity: "accent" }) === 0;

areEqual("ß", "ss", "de"); // false
areEqual("ı", "I", "tr"); // true

Метод localeCompare() позволяет сравнивать строки подобно strcmp() — он позволяет сортировать строки с учётом локали.

Примитивы-строки и объекты String

Обратите внимание, что JavaScript различает объекты String и значения примитивного типа string. (То же относится к Boolean и Numbers.)

Строковые литералы (заключённые в двойные или одинарные кавычки) и строки, возвращаемые вызовами String вне контекста конструктора (то есть без использования ключевого слова new), являются примитивами типа string. В контекстах, где у примитива-строки вызывается метод или выполняется поиск свойства, JavaScript автоматически оборачивает примитив-строку и вызывает метод или ищет свойство уже у объекта-обёртки.

const strPrim = "foo"; // A literal is a string primitive
const strPrim2 = String(1); // Coerced into the string primitive "1"
const strPrim3 = String(true); // Coerced into the string primitive "true"
const strObj = new String(strPrim); // String with new returns a string wrapper object.

console.log(typeof strPrim); // "string"
console.log(typeof strPrim2); // "string"
console.log(typeof strPrim3); // "string"
console.log(typeof strObj); // "object"

Предупреждение: Вам редко понадобится использовать String в качестве конструктора.

При использовании eval() примитивы-строки и объекты String также дают разные результаты. Примитивы, переданные в eval, обрабатываются как исходный код; объекты String обрабатываются как любые другие объекты — возвращается сам объект. Например:

const s1 = "2 + 2"; // creates a string primitive
const s2 = new String("2 + 2"); // creates a String object
console.log(eval(s1)); // returns the number 4
console.log(eval(s2)); // returns the string "2 + 2"

По этим причинам код может перестать работать, если встретит объекты String там, где ожидается примитив-строка, хотя обычно авторам не нужно беспокоиться об этом различии.

Объект String всегда можно преобразовать в соответствующий примитив с помощью метода valueOf().

console.log(eval(s2.valueOf())); // returns the number 4

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

Многие встроенные операции, ожидающие строки, сначала приводят аргументы к строкам (во многом поэтому объекты String ведут себя аналогично примитивам-строкам). Операцию преобразования можно кратко описать так:

  • Строки возвращаются без изменений.
  • undefined преобразуется в "undefined".
  • null преобразуется в "null".
  • true преобразуется в "true"; false преобразуется в "false".
  • Числа преобразуются с помощью того же алгоритма, что и в toString(10).
  • значения BigInt преобразуются с помощью того же алгоритма, что и в toString(10).
  • символы вызывают исключение TypeError.
  • Сначала объекты преобразуются в примитивы путём вызова методов [Symbol.toPrimitive]() (с подсказкой "string"), toString() и valueOf() именно в таком порядке. Затем полученный примитив преобразуется в строку.

В JavaScript есть несколько способов добиться почти такого же результата.

  • Шаблонный литерал: `${x}` выполняет описанные выше шаги приведения к строке для встроенного выражения.
  • Функция String(): String(x) использует тот же алгоритм для преобразования x, за исключением того, что символы не вызывают исключение TypeError, а возвращают "Symbol(description)", где description — это описание символа.
  • Использование оператора +: "" + x приводит операнд к примитиву, а не к строке, и для некоторых объектов работает совсем не так, как обычное приведение к строке. Подробнее см. на справочной странице.

В зависимости от вашей задачи может понадобиться использовать `${x}` (чтобы имитировать поведение встроенных механизмов) или String(x) (чтобы обрабатывать значения символов без исключений), но не следует использовать "" + x.

Символы UTF-16, кодовые точки Unicode и графемные кластеры

Строки по своей сути представлены последовательностями 16-битных кодовых единиц UTF-16. В кодировке UTF-16 каждая кодовая единица имеет длину ровно 16 бит. Это означает, что существует не более 216, или 65536, символов, которые можно представить одной кодовой единицей UTF-16. Этот набор символов называется основной многоязычной плоскостью (BMP) и включает наиболее распространённые символы: латинский, греческий и кириллический алфавиты, а также многие восточноазиатские символы. Каждую кодовую единицу можно записать в строке с помощью \u и ровно четырёх шестнадцатеричных цифр.

Однако весь набор символов Unicode намного больше 65536. Дополнительные символы хранятся в UTF-16 в виде суррогатных пар — пар 16-битных кодовых единиц, представляющих один символ. Во избежание неоднозначности обе части пары должны находиться в диапазонах 0xD800 и 0xDFFF, а эти кодовые единицы не используются для кодирования символов одной кодовой единицей. (Точнее, ведущие суррогаты, также называемые кодовыми единицами старших суррогатов, имеют значения от 0xD800 до 0xDBFF включительно, а завершающие суррогаты, также называемые кодовыми единицами младших суррогатов, — от 0xDC00 до 0xDFFF включительно.) Каждый символ Unicode, состоящий из одной или двух кодовых единиц UTF-16, также называется кодовой точкой Unicode. Каждую кодовую точку Unicode можно записать в строке с помощью \u{xxxxxx}, где xxxxxx обозначает от 1 до 6 шестнадцатеричных цифр.

«Одинокий суррогат» — это 16-битная кодовая единица, соответствующая одному из описаний ниже:

  • Она находится в диапазоне от 0xD800 до 0xDBFF включительно (то есть является ведущим суррогатом), но это последняя кодовая единица в строке либо следующая кодовая единица не является завершающим суррогатом.
  • Она находится в диапазоне от 0xDC00 до 0xDFFF включительно (то есть является завершающим суррогатом), но это первая кодовая единица в строке либо предыдущая кодовая единица не является ведущим суррогатом.

Одинокие суррогаты не представляют символы Unicode. Большинство встроенных методов JavaScript обрабатывают их правильно, поскольку все они работают с 16-битными кодовыми единицами UTF-16, однако при взаимодействии с другими системами одинокие суррогаты часто оказываются недопустимыми значениями. Например, encodeURI() вызывает исключение URIError для одиноких суррогатов, поскольку при кодировании URI используется UTF-8, в которой нет кодировки для одиноких суррогатов. Строки, не содержащие одиноких суррогатов, называются корректно сформированными и безопасны для использования с функциями, не работающими с UTF-16, такими как encodeURI() или TextEncoder. Проверить, корректно ли сформирована строка, можно с помощью метода isWellFormed(), а устранить одинокие суррогаты — с помощью метода toWellFormed().

Помимо символов Unicode, существуют последовательности символов Unicode, которые следует рассматривать как одну визуальную единицу, называемую графемным кластером. Наиболее распространённый пример — эмодзи: многие эмодзи с различными вариантами на самом деле состоят из нескольких эмодзи, обычно объединённых символом <ZWJ> (U+200D).

Важно учитывать, на каком уровне символов выполняется перебор. Например, split("") разделяет строку на 16-битные кодовые единицы UTF-16 и разделяет суррогатные пары. Индексы строк также указывают на положение каждой кодовой единицы UTF-16. В то же время [Symbol.iterator]() выполняет перебор по кодовым точкам Unicode. Для перебора графемных кластеров потребуется собственный код.

"😄".split(""); // ['\ud83d', '\ude04']; splits into two lone surrogates

// "Backhand Index Pointing Right: Dark Skin Tone"
[..."👉🏿"]; // ['👉', '🏿']
// splits into the basic "Backhand Index Pointing Right" emoji and
// the "Dark skin tone" emoji

// "Family: Man, Boy"
[..."👨‍👦"]; // [ '👨', '‍', '👦' ]
// splits into the "Man" and "Boy" emoji, joined by a ZWJ

// The United Nations flag
[..."🇺🇳"]; // [ '🇺', '🇳' ]
// splits into two "region indicator" letters "U" and "N".
// All flag emojis are formed by joining two region indicator letters

Конструктор

String()
Создаёт объекты String. При вызове как функция возвращает примитивные значения типа String.

Статические методы

String.fromCharCode()
Возвращает строку, созданную с использованием указанной последовательности значений Unicode.
String.fromCodePoint()
Возвращает строку, созданную с использованием указанной последовательности кодовых точек.
String.raw()
Возвращает строку, созданную из необработанного шаблонного литерала.

Свойства экземпляра

Эти свойства определены в String.prototype и доступны всем экземплярам String.

String.prototype.constructor
Функция-конструктор, создавшая объект-экземпляр. Для экземпляров String исходным значением является конструктор String.

Эти свойства являются собственными свойствами каждого экземпляра String.

length
Отражает length строки. Доступно только для чтения.

Методы экземпляра

String.prototype.at()
Возвращает символ (ровно одну кодовую единицу UTF-16) по указанному index. Принимает отрицательные целые числа, отсчитываемые от последнего символа строки.
String.prototype.charAt()
Возвращает символ (ровно одну кодовую единицу UTF-16) по указанному index.
String.prototype.charCodeAt()
Возвращает число — значение кодовой единицы UTF-16 по указанному index.
String.prototype.codePointAt()
Возвращает неотрицательное целое число Number — значение кодовой точки для кодовой точки в кодировке UTF-16, начинающейся с указанного pos.
String.prototype.concat()
Объединяет текст двух или более строк и возвращает новую строку.
String.prototype.endsWith()
Определяет, заканчивается ли строка символами строки searchString.
String.prototype.includes()
Определяет, содержит ли вызываемая строка searchString.
String.prototype.indexOf()
Возвращает индекс первого вхождения searchValue в этой строке или -1, если совпадений нет.
String.prototype.isWellFormed()
Возвращает логическое значение, указывающее, содержит ли эта строка одинокие суррогаты.
String.prototype.lastIndexOf()
Возвращает индекс последнего вхождения searchValue в этой строке или -1, если совпадений нет.
String.prototype.localeCompare()
Возвращает число, указывающее, идёт ли исходная строка compareString перед заданной строкой, после неё или эквивалентна ей в порядке сортировки.
String.prototype.match()
Используется для поиска соответствий регулярного выражения regexp в строке.
String.prototype.matchAll()
Возвращает итератор со всеми совпадениями regexp.
String.prototype.normalize()
Возвращает форму нормализации Unicode для значения вызываемой строки.
String.prototype.padEnd()
Дополняет текущую строку с конца заданной строкой и возвращает новую строку длины targetLength.
String.prototype.padStart()
Дополняет текущую строку с начала заданной строкой и возвращает новую строку длины targetLength.
String.prototype.repeat()
Возвращает строку, состоящую из элементов объекта, повторённых count раз.
String.prototype.replace()
Используется для замены вхождений searchFor с помощью replaceWith. searchFor может быть строкой или регулярным выражением, а replaceWith — строкой или функцией.
String.prototype.replaceAll()
Используется для замены всех вхождений searchFor с помощью replaceWith. searchFor может быть строкой или регулярным выражением, а replaceWith — строкой или функцией.
String.prototype.search()
Выполняет поиск совпадения регулярного выражения regexp с вызываемой строкой.
String.prototype.slice()
Извлекает часть строки и возвращает новую строку.
String.prototype.split()
Возвращает массив строк, полученный разделением вызываемой строки в местах вхождения подстроки sep.
String.prototype.startsWith()
Определяет, начинается ли вызываемая строка с символов строки searchString.
String.prototype.substr() Устарело
Возвращает часть строки, начиная с указанного индекса и продолжая заданное количество символов.
String.prototype.substring()
Возвращает новую строку, содержащую символы вызываемой строки, начиная с указанного индекса или между указанными индексами.
String.prototype.toLocaleLowerCase()

Символы строки преобразуются в нижний регистр с учётом текущей локали.

Для большинства языков результат будет таким же, как у toLowerCase().

String.prototype.toLocaleUpperCase()

Символы строки преобразуются в верхний регистр с учётом текущей локали.

Для большинства языков результат будет таким же, как у toUpperCase().

String.prototype.toLowerCase()
Возвращает значение вызываемой строки, преобразованное в нижний регистр.
String.prototype.toString()
Возвращает строку, представляющую указанный объект. Переопределяет метод Object.prototype.toString().
String.prototype.toUpperCase()
Возвращает значение вызываемой строки, преобразованное в верхний регистр.
String.prototype.toWellFormed()
Возвращает строку, в которой все одинокие суррогаты заменены символом замены Unicode U+FFFD.
String.prototype.trim()
Удаляет пробельные символы в начале и конце строки.
String.prototype.trimEnd()
Удаляет пробельные символы в конце строки.
String.prototype.trimStart()
Удаляет пробельные символы в начале строки.
String.prototype.valueOf()
Возвращает примитивное значение указанного объекта. Переопределяет метод Object.prototype.valueOf().
String.prototype[Symbol.iterator]()
Возвращает новый объект-итератор, перебирающий кодовые точки значения String и возвращающий каждую кодовую точку как значение String.

Методы-обёртки HTML

Предупреждение: Устарело. Избегайте использования этих методов.

Они имеют ограниченное применение, поскольку основаны на очень старом стандарте HTML и поддерживают лишь часть доступных сегодня тегов и атрибутов HTML. Многие из них сейчас создают устаревшую или нестандартную разметку. Кроме того, они объединяют строки без проверки и очистки данных, что создаёт потенциальную угрозу безопасности при непосредственной вставке с помощью innerHTML. Вместо этого используйте API DOM, например document.createElement().

String.prototype.anchor() Устарело
<a name="name"> (цель гиперссылки)
String.prototype.big() Устарело
<big>
String.prototype.blink() Устарело
<blink>
String.prototype.bold() Устарело
<b>
String.prototype.fixed() Устарело
<tt>
String.prototype.fontcolor() Устарело
<font color="color">
String.prototype.fontsize() Устарело
<font size="size">
String.prototype.italics() Устарело
<i>
String.prototype.link() Устарело
<a href="url"> (ссылка на URL)
String.prototype.small() Устарело
<small>
String.prototype.strike() Устарело
<strike>
String.prototype.sub() Устарело
<sub>
String.prototype.sup() Устарело
<sup>

Обратите внимание, что эти методы не проверяют наличие HTML-тегов в самой строке, поэтому с их помощью можно создать недопустимый HTML:

"</b>".bold(); // <b></b></b>

Единственное выполняемое ими экранирование — замена " в значении атрибута (для anchor(), fontcolor(), fontsize() и link()) на &quot;.

"foo".anchor('"Hello"'); // <a name="&quot;Hello&quot;">foo</a>

Примеры

Преобразование в строку

Функция String() надёжнее преобразует значения в строки, чем вызов метода toString() для значения, поскольку первый способ работает с null и undefined. Например:

// You cannot access properties on null or undefined

const nullVar = null;
nullVar.toString(); // TypeError: Cannot read properties of null
String(nullVar); // "null"

const undefinedVar = undefined;
undefinedVar.toString(); // TypeError: Cannot read properties of undefined
String(undefinedVar); // "undefined"

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-string-objects

Совместимость с браузерами

Компьютер Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari в iOS Samsung Internet WebView для Android WebView в iOS Bun Deno Node.js
String
1
12
1
3
1
18
4
10.1
1
1.0
1
1
1.0.0
1.0
0.10.0
@@iterator
38
12
36
27–36Используется свойство-заполнитель с именем @@iterator.
17–27Используется свойство-заполнитель с именем iterator.
25
9
38
36
27–36Используется свойство-заполнитель с именем @@iterator.
17–27Используется свойство-заполнитель с именем iterator.
25
9
3.0
38
9
1.0.0
1.0
0.12.0
String
1
12
1
3
1
18
4
10.1
1
1.0
1
1
1.0.0
1.0
0.10.0
anchor
1
12
1Начиная с версии 17, кавычка (") в строках, переданных параметру name, заменяется соответствующим HTML-символом (").
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
at
92
92
90
78
15.4
92
90
65
15.4
16.0
92
15.4
1.0.0
1.12
16.6.0
big
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
blink
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
bold
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
charAt
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
charCodeAt
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
codePointAt
41
12
29
28
9
41
29
28
9
4.0
41
9
1.0.0
1.0
4.0.0
concat
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
endsWith
41
12
17
28
9
36
17
24
9
3.0
37
9
1.0.0
1.0
4.0.0
fixed
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
fontcolor
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
fontsize
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
fromCharCode
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
fromCodePoint
41
12
29
28
9
41
29
28
9
4.0
41
9
1.0.0
1.0
4.0.0
includes
41
12
40
18–48
28
9
41
40
18–48
28
9
4.0
41
9
1.0.0
1.0
4.0.0
indexOf
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
isWellFormed
111
111
119
97
16.4
111
119
75
16.4
22.0
111
16.4
1.0.0
1.32
20.0.0
italics
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
lastIndexOf
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
length
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
link
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
localeCompare
1
12
1
7
3
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
match
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
matchAll
73
79
67
60
13
73
67
52
13
11.0
73
13
1.0.0
1.0
12.0.0
normalize
34
12
31
21
10
34
31
21
10
2.0
37
10
1.0.0
1.0
0.12.0
padEnd
57
15
48
44
10
57
48
43
10
7.0
57
10
1.0.0
1.0
8.0.0
padStart
57
15
48
44
10
57
48
43
10
7.0
57
10
1.0.0
1.0
8.0.0
raw
41
12
34
28
9
41
34
28
9
4.0
41
9
1.0.0
1.0
4.0.0
repeat
41
12
24
28
9
36
24
28
9
3.0
41
9
1.0.0
1.0
4.0.0
replace
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
replaceAll
85
85
77
71
13.1
85
79
60
13.4
14.0
85
13.4
1.0.0
1.2
15.0.0
search
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
slice
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
small
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
split
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
startsWith
41
12
17
28
9
36
17
24
9
3.0
37
9
1.0.0
1.0
4.0.0
strike
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
sub
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
substr
1
12
1
4
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
substring
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
sup
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
toLocaleLowerCase
1
12
1
4
1.3
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
toLocaleUpperCase
1
12
1
4
1.3
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
toLowerCase
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
toString
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
toUpperCase
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
toWellFormed
111
111
119
97
16.4
111
119
75
16.4
22.0
111
16.4
1.0.0
1.32
20.0.0
trim
4
12
3.5
10.5
5
18
4
11
5
1.0
4.4
5
1.0.0
1.0
0.10.0
trimEnd
66
4
79
12
61
3.5
53
15
12
66
18
61
4
47
14
12
9.0
1.0
66
4.4
12
1.0.0
1.0
1.0
10.0.0
0.12.0
trimStart
66
4
79
12
61
3.5
53
15
12
66
18
61
4
47
14
12
9.0
1.0
66
4.4
12
1.0.0
1.0
1.0
10.0.0
0.12.0
unicode_code_point_escapes
1
12
40
4
1
18
40
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
valueOf
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • Числа и строки руководство
  • RegExp

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API