Объект String

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

Синтаксис

//Вы можете создать объект Строка двумя способами:
var str = new String(string);
//или более коротко:
var str = string;

Параметры

string
Любая строка (группа знаков Юникода), заключенных в двойные (") или одинарные (')кавычки; например, "Netscape" или 'Netscape'

Комментарии

Объект String это оболочка вокруг строки данных примитивных типов. Не путайте строковой литерал с объектом String. Например, следующий код создаёт строковой литерал s1 и String-объект s2:

s1 = "foo"             // создаётся строковое литеральное значение
s2 = new String("foo") // создаётся String-объект

Вы можете вызвать любой метод String-объекта в строковом литеральном значении -- JavaScript автоматически конвертирует строковой литерал во временный String-объект, вызывает метод, затем уничтожает временный String-объект. Можно также использовать свойство String.length со строковым литералом.

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

s1 = "2 + 2"            // создаёт строковое литеральное значение
s2 = new String("2 + 2") // создаёт String-объект
eval(s1)     // возвращает число 4
eval(s2)     // возвращает строку "2 + 2"

Обратные кавычки

На основании спецификации ECMAScript 2015 (6th Edition, ECMA-262) добавлен новый вид кавычек для строк:

var str = `обратные кавычки`;

Основные отличия от двойных "..." и одинарных '...' кавычек:

Свойства объекта String

length Возвращает длину строки.
prototype Позволяет добавлять свойства и методы к объекту.

Методы объекта String

charAt() Возвращает символ находящийся на указанной позиции в строке.
charCodeAt() Возвращает Юникод символа на указанной позиции в строке.
concat() Объединяет две и более строки и возвращает результат.
endsWith() Метод определяет, заканчивается ли строка символами другой строки, возвращая, соотвественно, true или false.
fromCharCode() Преобразует Юникод в символ.
includes() Метод определяет, находится ли одна строка внутри другой, возвращая, соотвественно, true или false.
indexOf() Возвращает позицию первого найденного совпадения выражения в методе со строкой текста.
lastIndexOf() Возвращает позицию последнего найденного совпадения выражения в методе со строкой текста.
match() Ищет совпадение между регулярным выражением переданным в методе и строкой текста и возвращает найденное совпадение (если оно имеется).
repeat() Метод конструирует и возвращает новую строку, содержащую указанное количество соединённых вместе копий строки, на которой он был вызван.
replace() Ищет совпадение между регулярным выражением и строкой текста и заменяет найденное совпадение (если оно имеется) новой строкой.
search() Ищет совпадение между регулярным выражением и строкой текста и возвращает позицию найденного совпадения (если оно имеется).
slice() Извлекает часть существующей строки и возвращает новую строку.
split() Разделяет строку на массив подстрок.
startsWith() Метод определяет, начинается ли строка с символов другой строки, возвращая, соотвественно, true или false.
substr() Извлекает указанное количество символов из строки начиная с указанного места.
substring() Извлекает символы из строки между указанными координатами.
toLowerCase() Делает все символы строки строчными.
toUpperCase() Делает все символы строки заглавными.
trim() Метод удаляет пробелы с обеих сторон строки.
valueOf() Возвращает содержимое объекта Строка.

Методы обертки строк

С помощью методов ниже Вы можете обернуть строку желаемыми тэгами разметки:

bold() Оборачивает строку тэгами <b>.
italics() Оборачивает строку тэгами <i>.
link() Оборачивает строку тэгами <a>.
sub() Оборачивает строку тэгами <sub>.
sup() Оборачивает строку тэгами <sup>.

length

Свойство length возвращает длину строки (в символах).

Синтаксис

строка.length()

Пример

//Создадим строку
var str1 = new String("Я короткая строка!");
//Определим ее длину и отобразим результат
alert( str1.length);
//А можно и так:
var len = "Я короткая строка!".length;
alert (len);

prototype

С помощью свойства prototype Вы можете добавить новое свойство или метод ко всем объектам созданным с помощью данного конструктора.

Синтаксис

конструктор.prototype.имя=значение

Пример

//Создадим шаблон объекта car
function car(model, prize) {
   this.model=model;
   this.prize=prize;
}
//Создадим экземпляр peugeot 
var peugeot = new car("Peugeot207", 540000);
var skyline = new car("Nissan Skyline", 500000);
/* Добавим конструктору car новое свойство door (все созданные экземпляры объекта теперь помимо 
свойств model и prize будут иметь свойство door со значением 5) */
car.prototype.door=5;
//Выведем значение добавленного свойства
alert (peugeot.door + "\n" +
skyline.door) ;

charAt

Метод charAt возвращает символ на указанной позиции в строке.

Синтаксис

строка.charAt(index)

Параметры

index
Является обязательным параметром. Указывает позицию символа, который будет возвращен.
Первый символ в строке имеет позицию 0, второй 1 и т.д.

Пример

//Создадим строку
var str1 = new String("Я короткая строка!");
alert (
 str1.charAt(4) + "\n" +        //Отобразим пятый символ строки
 str1.charAt(str1.length-1)+'\n'+  //Отобразим последний символ строки
 str1.charAt(0) );                 //Отобразим первый символ строки

charCodeAt

Метод charCodeAt возвращает Юникод символа на указанной позиции в строке.

Синтаксис

строка.charCodeAt(index)

Параметры

index
Является обязательным параметром. Указывает позицию символа Юникод которого будет возвращен.
Первый символ в строке имеет позицию 0, второй 1 и т.д.

Пример

//Создадим строку
var str1 = new String("Я короткая строка!");
alert (
str1.charCodeAt(4)+"\n" +            //Отобразим Юникод пятого символа строки
str1.charCodeAt(str1.length-1)+"\n"+ //Отобразим Юникод последнего символа строки
str1.charCodeAt(0));                 //Отобразим Юникод первого символа строки

concat

С помощью метода concat Вы можете объединить две и более строки и возвратить результат.

Синтаксис

строка.concat(строка1,строка2,...строкаN)

Параметры

строка1,строка2,...строкаN

Являются обязательными параметрами. Строки, которые будут объединены.

Комментарии

Данный метод не изменяет существующие строки он лишь возвращает их объединенную копию.

Пример

//Создадим несколько произвольных строк
str1 = "Я ";
str2 = "короткая ";
str3 = "строка!";
//Объединим строки и отобразим результат
alert (str1.concat(str2,str3));

endsWith

Метод endsWith определяет, заканчивается ли строка символами другой строки, возвращая, соотвественно, true или false.

Синтаксис
строка.endsWith(searchString[, position])

Параметры

searchString
Символы, искомые в конце данной строки.
position
Необязательный параметр. Искать внутри данной строки, как если бы эта строка была указанной длины; по умолчанию установлен в реальную длину строки, обрезается по диапазону, устанавливаемому длиной этой строки.

Описание

Этот метод позволяет вам определять, заканчивается ли или нет строка символами другой строки.

Примеры

Пример: использование метода endsWith()

var str = 'Быть или не быть, вот в чём вопрос.';
alert (
 str.endsWith('вопрос.') + '\n'+   // true
 str.endsWith('быть') + '\n'+      // false
 str.endsWith('быть', 16));        // true

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

41,012,0179,0нет

fromCharCode

С помощью метода fromCharCode Вы можете преобразовывать произвольные значения Юникода в соответствующие им символы.

Синтаксис

String.fromCharCode(Юникод1,Юникод2,...ЮникодN)

Параметры

Юникод1,Юникод2,...ЮникодN

Являются обязательными параметрами. Символы Юникода, которые будут преобразованы в соответствующие им строковые символы.

Пример

//Преобразуем Юникод в соответствующие ему символы и отобразим результат 
alert(String.fromCharCode(1070,1085,1080,1082,1086,1076));

includes

Метод includes определяет, находится ли одна строка внутри другой, возвращая, соотвественно, true или false.

Синтаксис

строка.includes(searchString[, position])

Параметры

searchString
Строка, искомая в данной строке.
position
Необязательный параметр. Позиция в строке, с которой начинать поиск строки searchString; по умолчанию установлена в 0.

Описание

Этот метод позволяет определять, содержит ли строка другую строку.

Примеры

Пример: использование метода includes

var str = 'Быть или не быть, вот в чём вопрос.';
alert(
 str.includes('Быть') +'\n'+            // true
 str.includes('вопрос') +'\n'+          // true
 str.includes('несуществующий') +'\n'+  // false
 str.includes('Быть', 1) +'\n'+         // false
 str.includes('БЫТЬ'));                 // false

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

41,0нет40,09,0нет

indexOf

Метод indexOf возвращает позицию первого найденного совпадения поискового выражения со строкой текста.

Синтаксис

строка.indexOf (поисковое_выражение,index)

Параметры

поисковое_выражение

Является обязательным параметром. Строка, которая будет проверятся на наличие совпадений.
index
Является не обязательным параметром. Позиция, с которой будет производится поиск в строке (первый символ строки находится на 0 позиции, второй на 1 и т.д.). Если данный параметр отсутствует поиск будет произведен от начала строки.

Комментарии

Если совпадение не было найдено метод возвращает -1.

Обратите внимание: метод indexOf чувствителен к регистру символов.

Пример

//Зададим произвольную строку текста
var str = "Я изучаю JavaScript в интернете!";
//Произведем поиск интернет в строке текста и отобразим
alert (
str.indexOf("интернет") + '\n' + // позицию первого найденного совпадения
str.indexOf("Moscow") + '\n' +   // поиск несуществующей Moscow в строке текста
str.indexOf("изучаю",8) );       // произведем поиск "изучаю" с 9 позиции 

lastIndexOf

Метод lastIndexOf возвращает позицию последнего найденного совпадения поискового выражения со строкой текста.

Синтаксис

строка.lastIndexOf (поисковое_выражение,index)

Параметры

поисковое_выражение

Является обязательным параметром. Строка, которая будет проверятся на наличие совпадений.
index
Является не обязательным параметром. Позиция, с которой будет производится поиск в строке (первый символ строки находится на 0 позиции, второй на 1 и т.д.). Значение по умолчанию: строка.length. Если оно отрицательно, трактуется как 0. Если index > строка.length, параметр Index будет трактоваться как строка.length.

Комментарии

Если совпадение не было найдено метод возвращает -1.

Обратите внимание: метод indexOf чувствителен к регистру символов.

Пример

//Зададим произвольную строку текста
var str = "Это А, это снова А!";
//Произведем поиск интернет в строке текста и отобразим
alert (
str.lastIndexOf("А") + '\n' +     // поиск последнего найденного совпадения
str.lastIndexOf("это") + '\n' +   // поиск последнего найденного совпадения
str.lastIndexOf("изучаю",8) );    // произведем поиск "изучаю" с 9 позиции 

match

Метод match ищет совпадение между переданным регулярным выражением и строкой текста и возвращает массив из найденных совпадений или ноль если совпадения не были найдены.

Синтаксис

строка.match (regexp)

Параметры

regexp
Регулярное выражение.

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света. Скорость света — абсолютная величина \
скорости распространения электромагнитных волн в вакууме.";
//Теперь произведем глобальный поиск в ней и отобразим результат
alert(str.match(/света/g));

repeat

Метод repeat конструирует и возвращает новую строку, содержащую указанное количество соединённых вместе копий строки, на которой он был вызван.

Синтаксис

строка.repeat(count)

Параметры

count
Целое число от 0 до +∞: [0, +∞), определяющее число повторений строки во вновь создаваемой и возвращаемой строке.

Примеры

'абв'.repeat(-1);   // RangeError
'абв'.repeat(0);    // ''
'абв'.repeat(1);    // 'абв'
'абв'.repeat(2);    // 'абвабв'
'абв'.repeat(3.5);  // 'абвабвабв' (количество будет преобразовано в целое число)
'абв'.repeat(1/0);  // RangeError

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

41,0Нет24,0НетНет

replace

Метод replace ищет совпадение между регулярным выражением и строкой текста и заменяет найденное совпадение (если оно имеется) новой строкой. Обратите внимание: вместо регулярного выражения можно использовать обычную строку.

Синтаксис

строка.replace(regexp,newstring)
строка.replace(regexp,function)

Параметры

regexp
Регулярное выражение.
newstring
Строка, помещаемая вместо строки, найденной с помощью regexp.
function
Функция (с переменным списком параметров), выполняемая после выполнения поиска совпадения.

Описание, комментарии, примеры

Этот метод не изменяет String-объект, которым он вызывается; он просто возвращает новую строку.

В строке (newstring) для замены можно использовать специальные символы:

$$Вставляет "$".
$&Вставляет всё найденное совпадение.
$`Вставляет часть строки до совпадения.
$'Вставляет часть строки после совпадения.
$1, ... $9Значение скобочных групп. $1 - 1-я группа, $2 - 2-я, ...

Если Вы хотите выполнить глобальный поиск и замену или поиск без учёта регистра, включите флаги g (для глобального поиска) и i (игнорирование регистра) в регулярное выражение. Они могут быть включены вместе и отдельно.

Если Вы специфицируете функцию в качестве второго параметра, она вызывается после выполнения поиска совпадения.

В Вашей функции Вы можете динамически генерировать строку, которая замещает совпавшую подстроку. Результат вызова функции используется в качестве замещающего значения.

Вложенная функция может использовать совпавшие подстроки для определения новой строки (newstring), которая замещает найденную подстроку. Вы получаете совпавшие подстроки через параметры Вашей функции:
(str, p1,... pn, index,source)

Например, следующий метод replace возвращает XX.zzzz - zzzz , XX.

var s='';
var source="« XXzzzz »";
var t = source.replace(/(X+)(z+)/,
     function (str, p1, p2, index,source)
      { 
        s='str: "' + str + '"\np1: "'+p1+'"\np2: "'+p2+'"\nindex: '+index+'\nsource: "'+source;
        return str + " - " + p2 + " , " + p1;
      });
alert ('Результат: "'+t+'"\n'+s);


Здесь регулярное выражение содержит флаги global и ignore case с разрешением методу replace замещать каждое вхождение 'apples' на 'oranges'

.
re = /apples/gi;
str = "Apples are round, and apples are juicy.";
newstr=str.replace(re, "oranges");
alert(newstr)


В этом примере регулярное выражение определено в методе replace и содержит флаг игнорирования регистра.

str = "Twas the night before Xmas...";
newstr=str.replace(/xmas/i, "Christmas");
alert(newstr)


Здесь градусы по Фаренгейту замещаются эквивалентом по Цельсию. Градусы по Фаренгейту должны быть числом с конечной F. Функция возвращает число по Цельсию с конечной С. Например, если введено 212F, функция возвращает 100C. Если введено 0F, функция возвращает -17.77777777777778C.

Регулярное выражение test проверяет числа с конечной буквой F. Число по Фаренгейту доступно для Вашей функции через параметр $1. Функция устанавливает число по Цельсию на основе значения по Фаренгейту, передаваемого в строке функции f2c. Затем f2c возвращает число по Цельсию.

function f2c(s) {
   var re = /(\d+(\.\d*)?)F\b/g;
   return s.replace ( re,
         function ($0,$1,$2) {
            return (($1-32) * 5/9) + "C";
         }
      )
}
alert (
'212F = ' + f2c('212F')+',  0F = ' + f2c('0F ') +
',\n123.45F = ' + f2c('123.45F') );


//Зададим строку текста
var str = "HTML - объектно-ориентированный скриптовый язык программирования выполняющийся \
на стороне клиента. HTML - позволяет сделать веб-страницы динамичными.";
//Теперь произведем глобальную замену в ней и отобразим результат
alert(str.replace(/HTML/g,"JavaScript"));

search

Метод search ищет совпадения между регулярным выражением и строкой текста и возвращает позицию найденного совпадения (если оно имеется).

Синтаксис

строка.search(regexp)

Параметры

regexp
Регулярное выражение.

Возвращаемое значение

При успешном выполнении, search возвращает индекс регулярного выражения в строке. Иначе возвращает -1.

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света.";
//Произведем поиск существующего выражения 
var t = str.search(/Европа/);
//Теперь произведем поиск не существующего выражения 
alert(t+'\n'+str.search(/Африка/));

slice

Метод slice позволяет извлечь указанную часть строки.

Синтаксис

строка.slice(beginslice,endSlice)

Параметры

beginslice
Является обязательным параметром. Позиция, с которой необходимо начать выборку символов для извлечения. Первый символ строки имеет позицию 0, второй 1 и т.д. С помощью отрицательных значений параметра можно делать выборку с конца строки.
endSlice
Является не обязательным параметром. Позиция, на которой заканчивается выборка символов. Если данный параметр отсутствует выборка будет осуществлена до конца строки.

Комментарии

slice извлекает текст из первой строки и возвращает новую строку. Изменения в одной строке не влияют на другую строку.

slice извлекает до endSlice не включительно.

string.slice(1,4) // извлекает символы со второго по четвёртый 
                  // (символы с индексами  1, 2 и 3).

Как отрицательный индекс endSlice указывает смещение от конца строки, не входящее в результат.

string.slice(2,-1) // извлекает символы с третьего до конца строки.

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света.";
//Скопируем часть строки и отобразим результат
alert (
 str.slice(8,22) + "\n" +
 str.slice(8) + "\n" + 
 str.slice(-8)); //Скопируем последние 8 символов

split

С помощью метода split Вы можете разбивать строки на подстроки с помощью разделителей.

Синтаксис

строка.split(separator,limit)

Параметры

separator
Является не обязательным параметром. Символ, который используется для разбивки строки. Если параметр отсутствует, то строка будет возвращена целиком.
limit
Является не обязательным параметром. Целое число указывающее количество разбивок.

Комментарии

Метод split возвращает новый массив.

В качестве separator можно использовать регулярное выражение, а также фиксированную строку, которой разделяется строка-объект. Если separator это регулярное выражение, любые включённые скобки вызывают включение подсовпадений в возвращаемый массив.

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света.";
//Разобьем строку разными способами и отобразим результаты
alert (
 str.split(" ") + "\n"+
 str.split(" ",5) + "\n"+
 str.split("",6) + "\n"+
 str.split(" ")[2]);

startsWith

Метод startsWith определяет, начинается ли строка с символов другой строки, возвращая, соотвественно, true или false

Синтаксис

строка.startsWith(searchString[, position])

Параметры

searchString
Символы, искомые в начале данной строки.
position
Необязательный параметр. Позиция в строке, с которой начинать поиск строки searchString; по умолчанию установлена в 0.

Описание

Этот метод позволяет вам определять, начинается ли или нет строка с другой строки.

Примеры

var str = 'Быть или не быть, вот в чём вопрос.';
alert (
 str.startsWith('Быть') + '\n'+        // true
 str.startsWith('не быть') + '\n'+     // false
 str.startsWith('не быть', 9));        // true

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

41,012,017,09,041,0

substr

Метод substr извлекает указанное количество символов из строки начиная с указанного места.

Синтаксис

строка.substr(start,length)

Параметры

start
Является обязательным параметром. Позиция с которой начинается извлечение. Первый символ строки имеет позицию 0, второй 1 и т.д.
length
Является не обязательным параметром. Указывает количество извлекаемых символов. Если данный параметр отсутствует вся строка до конца будет извлечена.

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света.";
//Извлечем части строки и отобразим результат
alert (
str.substr(9,4) + '\n'+
str.substr(9,13) + '\n'+
str.substr(9) );

substring

Метод substring извлекает символы из строки между указанными координатами.

Синтаксис

строка.substring(indexA,indexB)

Параметры

indexA
Является обязательным параметром. Позиция, с которой начинается извлечение. Первый символ строки имеет позицию 0, второй 1 и т.д.
indexB
Является не обязательным параметром. Позиция, на которой заканчивается извлечение. Если данный параметр опущен, извлечение будет произведено до конца строки.

Комментарии

substring извлекает символы от indexA до indexB не включительно. Точнее:

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света.";
//Скопируем часть строки и отобразим результат
alert (
str.substring(8,22) + '\n'+
str.substring(8) );

toLowerCase

Метод toLowerCase преобразует все символы строки в строчные.

Синтаксис

строка.toLowerCase()

Возвращаемое значение

Метод toLowerCase возвращает значение строки, конвертированное в нижний регистр. toLowerCase не влияет на само значение строки.

Пример

//Зададим произвольную строку текста
var str = "ЕВРОПА — ОДНА ИЗ ШЕСТИ ЧАСТЕЙ СВЕТА.";
//Сделаем все символы строки строчными и отобразим результат
alert(str.toLowerCase());

toUpperCase

Метод toUpperCase преобразует все символы строки в заглавные.

Синтаксис

строка.toUpperCase()

Комментарии

Метод toUpperCase возвращает значение строки, конвертированное в верхний регистр. toUpperCase не влияет на значение самой строки.

Пример

//Зададим произвольную строку текста
var str = "европа - одна из шести частей света.";
//Сделаем все символы строки заглавными и отобразим результат
alert(str.toUpperCase());

trim

Метод trim удаляет пробелы с обеих сторон строки

Синтаксис

строка.trim()

Возвращаемое значение

Строка, представляющая строку с удаленными пробелами с обоих концов

Метод не изменяет исходную строку.

Примеры

alert ("«" + ("        Hello World!        ".trim()) + "»");

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

10,09,03,55,010,5

valueOf

Метод valueOf возвращает значение строки.

Синтаксис

строка.valueOf()

Комментарии

Данный метод часто вызывается JavaScript автоматически, а не задается явно в коде.

Пример

//Зададим произвольную строку текста
var str = "Европа — одна из шести частей света.";
//Отобразим значение объекта str
alert ( 
 str.valueOf() + '\n' +
/* Выведет тоже самое так как в этом случае valueOf
будет вызвано автоматически */
str);

bold

С помощью метода bold Вы можете отобразить строку жирным шрифтом.

Синтаксис

строка.bold()

Возвращаемое значение

Данный метод окружает строку тэгами <b>, то есть возвращает <b>строка</b>.

Пример

//Зададим произвольную строку текста
var str = "Я короткая строка.";
//Отобразим ее жирным шрифтом
alert(str.bold());

italics

С помощью метода italics Вы можете отобразить строку курсивом.

Синтаксис

строка.italics()

Возвращаемое значение

Данный метод возвращает строку окруженную тэгами <i>, то есть возвращает <i>строка</i>.

Пример

//Зададим произвольную строку текста
var str = "Я короткая строка.";
//Отобразим ее курсивом
alert(str.italics());

sub

С помощью метода sub Вы можете отобразить строку как подстрочный текст.

Синтаксис

строка.sub()

Возвращаемое значение

Данный метод возвращает строку окруженную тэгами <sub>, то есть возвращает <sub>строка</sub>.

Пример

//Зададим произвольную строку текста
var str = "Я короткая строка.";
//Отобразим ее как подстрочный текст
alert(str.sub());

sup

С помощью метода sup Вы можете отобразить строку как надстрочный текст.

Синтаксис

строка.sup()

Возвращаемое значение

Данный метод возвращает строку окруженную тэгами <sup>, то есть возвращает <sup>строка</sup>.

Пример

//Зададим произвольную строку текста
var str = "Я короткая строка.";
//Отобразим ее как надстрочный текст
alert(str.sup());