JavaScript :: Строки
http://belarusweb.net
Основы создания сайтов

JavaScript :: Строки

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

Для представления текста в JavaScript используются строки, которые представляют собой неизменяемые упорядоченные последовательности 16-битных значений без знака в кодировке UTF-16. Это значит, что все строки в JavaScript состоят из символов Юникода. При этом в большинстве случаев для их кодирования достаточно всего лишь одного 16-битного значения в кодировке UTF-16. Если же 16 бит оказывается недостаточно, то для представления такого кодового пункта Юникода используются сразу два 16-битных значения, называемых суррогатной парой (см. пример №1).

Важно помнить, что различные строковые методы, которые имеются в JavaScript, манипулируют именно 16-битными значениями, а не самими символами Юникода. Поэтому количество отображаемых на экране символов строки необязательно будет равно длине строки, которая определяется количеством задействованных для ее формирования 16-битных значений.

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Символы Юникода в строках</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<p id="p_1"></p>
	<p id="p_2"></p>
	<p id="p_3"></p>
	
	<p>
		Строковые методы, которые имеются в JavaScript, манипулируют 
		именно 16-битными значениями, а не самими символами Юникода.
	</p>
				
	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>	
/* Немножко оформим абзацы */
p{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}







  
  
  
  
  
  
  
  
//Записываем строку из одного 16-битного значения
var s_1='\u03c0';    
//Определяем его длину (равна 1)
var len_1=s_1.length;

//Здесь символ занимает более 16-бит, поэтому мы 
//использовали суррогатную пару
var s_2='\ud835\udc53';
//Определяем его длину (равна 2)
var len_2=s_2.length;

//Чтобы не возникало трудностей с суррогатными парами,
//для длинных кодов Юникода можно использовать 
//специальную управляющую последовательность (см. ниже)
var s_3='\u{1d453}';
 
 
//Находим абзацы по их id
var p_1=document.getElementById('p_1');
var p_2=document.getElementById('p_2');
var p_3=document.getElementById('p_3');

//Вставляем в них соответствующие значения
p_1.innerHTML = 'Длина символа '+s_1+' равна '+len_1;
p_2.innerHTML = 'Длина символа '+s_2+' равна '+len_2;
p_3.innerHTML = '\\ud835\\udc53 == \\u{1d453} == '+s_2;
	
	
		

Пример №1. Использование кодировки UTF-16 в строках

Для того, чтобы вписать литерал строки в код программы, следует заключить требуемую последовательность символов в одинарные (' '), двойные (" ") или обратные ` ` кавычки. При этом слишком длинные строковые литералы в коде программы разрешается разбивать на несколько строк, завершая каждую из них обратным слэшем. Более того, для литералов, заключенных в обратные кавычки, использование обратного слэша необязательно (см. пример №1).

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Создание строк в JavaScript</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<p id="p_1"></p>
	<p id="p_2"></p>
	<p id="p_3"></p>
	<p id="p_4"></p>
	<p id="p_5"></p>
	<p id="p_6"></p>
	
	<p>
		Для того, чтобы вписать литерал строки в код программы, 
		следует заключить требуемую последовательность символов 
		в одинарные (<span class="blue_letter">' '</span>), 
		двойные (<span class="blue_letter">" "</span>) или 
		обратные <span class="blue_letter">` `</span> кавычки.
	</p>
				
	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>
/* Немножко оформим абзацы */
p{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}




















	
//Присвоили строку в одинарных кавычках 
var str_1 = 'Я – строка в одинарных кавычках.';
//Разместили строку в одинарных кавычках на двух строках 
var str_2 = 'Я – строка в одинарных кавычках, \
			расположенная на двух строках.';

//Присвоили строку в двойных кавычках
var str_3 = "Я – строка в двойных кавычках.";  
//Разместили строку в двойных кавычках на двух строках 
var str_4 = 'Я – строка в двойных кавычках,\
			расположенная на двух строках.';
 
//Присвоили строку в обратных кавычках
var str_5 = `Я – строка в обратных кавычках.`; 
//Разместили строку в обратных кавычках на двух строках 
//Здесь слэш можно опускать
var str_6 = `Я – строка в обратных кавычках, 
			расположенная на двух строках.`;
 
//Находим абзацы по их id
var p_1=document.getElementById('p_1');
var p_2=document.getElementById('p_2');
var p_3=document.getElementById('p_3');
var p_4=document.getElementById('p_4'); 
var p_5=document.getElementById('p_5');
var p_6=document.getElementById('p_6');

//Вставляем в них соответствующие значения
p_1.innerHTML = str_1;
p_2.innerHTML = str_2;
p_3.innerHTML = str_3;
p_4.innerHTML = str_4;
p_5.innerHTML = str_5;
p_6.innerHTML = str_6;
	

Пример №2. Создание строк в JavaScript

Следует отметить, что когда возникает потребность в использовании кавычек в качестве обычных символов для вывода их на экран, необязательно использовать мнемоники или коды Юникода, т.к. в JavaScript в строковых литералах, заключенных в кавычки одного типа, разрешается использовать кавычки другого типа (см. пример №3). Кроме того, разрешается использовать кавычки любого разрешенного типа внутри строковых литералов, заключенных в кавычки того же типа, предварительно экранировав их при помощи обратного слэша (\).

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Использование кавычек внутри строк</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<p id="p_1"></p>
	<p id="p_2"></p>
	<p id="p_3"></p>
	<p id="p_4"></p>
	<p id="p_5"></p>
	<p id="p_6"></p>
	
	<p>
		Разрешается использовать один тип кавычек внутри другого, 
		например, двойные внутри одинарных или наоборот. Если же 
		потребуется использовать кавычки внутри кавычек такого же 
		типа, следует использовать для их экранирования обратный 
		слэш (<span class="blue_letter">\</span>)
	</p>
				
	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>
/* Немножко оформим абзацы */
p{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}




















	
//Используем одинарные кавычки внутри двойных 
var str_1 = "Он сказал: 'Это JavaScript!'";  
//Используем двойные кавычки внутри одинарных
var str_2 = 'Он сказал: "Это JavaScript!"';   
//Используем двойные кавычки внутри обратных
var str_3 = `Он сказал: "Это JavaScript!"`;

//Экранируем одинарные кавычки внутри одинарных
var str_4 = 'Он сказал: \'Это JavaScript!\''; 
//Экранируем двойные кавычки внутри двойных
var str_5 = "Он сказал: \"Это JavaScript!\"";
//Экранируем обратные кавычки внутри обратных
var str_6 = `Он сказал: \`Это JavaScript!\``;
 
//Находим абзацы по их id
var p_1=document.getElementById('p_1');
var p_2=document.getElementById('p_2');
var p_3=document.getElementById('p_3');
var p_4=document.getElementById('p_4'); 
var p_5=document.getElementById('p_5');
var p_6=document.getElementById('p_6');

//Вставляем в них соответствующие значения
p_1.innerHTML = str_1;
p_2.innerHTML = str_2;
p_3.innerHTML = str_3;
p_4.innerHTML = str_4;
p_5.innerHTML = str_5;
p_6.innerHTML = str_6;
	
	
	
	
	
	

Пример №3. Использование кавычек внутри строк

В HTML строки также разрешается заключать как в одинарные, так и в двойные кавычки. Поэтому во избежание непреднамеренных ошибок при использовании в одном файле и кода JavaScript, и кода HTML, имеет смысл использовать для них кавычки разного типа.

Использование подстановок внутри строк

Обратные кавычки были введены в JavaScript совсем недавно. Однако они быстро завоевали свое место среди одинарных и двойных кавычек. Это связано с тем, что обратные кавычки могут содержать не только простой текст, но и специальные конструкции вида ${выражение}, называемые подстановками (см. пример №4).

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Подстановки внутри обратных кавычек</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<p id="p_1"></p>
				
	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>	
/* Немножко оформим абзацы */
p{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}
	
	
	
	
	
	
	
	
//Сохраняем числа в переменных 
var a = 5;  
var b = 10;   

//Используем подстановку для получения результата
var str_1 = `${a}*${b} = ${a*b}`;
 
//Находим абзац по его id
var p_1=document.getElementById('p_1');

//Вставляем в них соответствующие значения
p_1.innerHTML = str_1;
	








	

Пример №4. Подстановки внутри строк в обратных кавычек

Как видно из примера №4, выражения внутри подстановок вычисляются интерпретатором, а результаты становятся частью строки, заменяя собой конструкции подстановок, что значительно упрощает написание и читабельность кода.

Управляющие последовательности

Не каждый символ можно свободно отобразить внутри строкового литерала. Поэтому в JavaScript, как и во многих других языках программирования, имеется специальный набор управляющих последовательностей.

Управляющая последовательность – это специальная последовательность символов, начинающаяся со знака обратного слэша, которая обозначает символ, не всегда представимый внутри строки другими способами.

Перечислим использующиеся в JavaScript управляющие последовательности:

  • \0 – символ NUL, т.е. пустой символ (\0000);
  • \b'Забой', т.е. возврат на одну позицию (\0008);
  • \t – горизонтальная табуляция (\0009);
  • \n – перевод строки (\u000A);
  • \v – вертикальная табуляция (\u000B);
  • \f – подача страницы, т.е. ее очистка (\u000C);
  • \r – возврат каретки (\u000D);
  • \" – двойная кавычка (\u0022);
  • \' – одинарная кавычка (\u0027);
  • \` – гравис, т.е. обратная кавычка (\u0060);
  • \\ – обратный слэш (\u005C);
  • \xXX – символ Latin-1, заданный двумя цифрами в шестнадцатеричной системе счисления;
  • \uXXXX – символ Юникода из диапазона U+000016...U+D7FF16, заданный четырьмя цифрами в шестнадцатеричной системе счисления;
  • \u{X-XXXXXX} – символ Юникода из диапазона U+000016...U+10FFFF16, заданный числовым кодом от 1 до 6 цифр в шестнадцатеричной системе счисления (данную конструкцию следует использовать для длинных кодовых пунктов Юникода).

Использование некоторых управляющих последовательностей показано в примере №5.

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Использование управляющих последовательностей</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<pre id="pre_1"></pre>
	<pre id="pre_2"></pre>	
	<pre id="pre_3"></pre>	
	<pre id="pre_4"></pre>
	
	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>	
/* Немножко оформим элементы pre */
pre{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}
	
	



	
	
	
	
	
	
//Используем у.п. для перевода строк
var str_1 = "1-я строка\n2-я строка\u000A3-я строка.";  
//Используем у.п. для горизонтальной табуляции 
var str_2 = "a \t b \t\t c \u0009 d"; 
//Используем у.п. для вывода символов Юникода 
var str_3 = "Заглавная \u03A8";
var str_4 = "Символ лошади - \u{1F40E}";
 
//Находим элементы 'pre' по их  id
var pre_1=document.getElementById('pre_1');
var pre_2=document.getElementById('pre_2');
var pre_3=document.getElementById('pre_3');
var pre_4=document.getElementById('pre_4');

//Вставляем в них соответствующие значения
pre_1.innerHTML = str_1;
pre_2.innerHTML = str_2;
pre_3.innerHTML = str_3;
pre_4.innerHTML = str_4;
	
	
	
	
	
	

Пример №5. Использование управляющих последовательностей в строках

Возможности для работы со строками

Одной из встроенных возможностей в JavaScript является возможность объединять (конкатенировать) строки при помощи обычного знака плюс (+), который применяется и для сложения чисел. Однако при конкатенации строк данный оператор выполняет не математическое сложение, а вполне обычное их объединение, при котором каждая последующая строка присоединяется в конец предыдущей (см. пример №6).

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Конкатенация строк</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<p id="p_1"></p>
	<p id="p_2"></p>	
	
	<p>
		В <span class="blue_letter">JavaScript</span> 
		строки в любых кавычках можно объединять при 
		помощи оператора <span class="blue_letter">+</span>.
	</p>	

	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>
/* Немножко оформим абзацы */
p{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}
	
	


	
	
	
	
	
	
	
	
	
	
	
//1-я строка
var str_1 = "Всем привет";  
//2-я строка
var str_2 = " от "; 
//3-я строка 
var str_3 = "JavaScript!";

//Конкатенируем все строки в одну
var rez_1 = str_1 + str_2 + str_3;

//Объединяем строковые литералы и сохраняем их в переменной
//При этом используем разные кавычки
var rez_2 = "Давайте "+' жить '+`дружно!`;

 
//Находим элементы 'p' по их  id
var p_1=document.getElementById('p_1');
var p_2=document.getElementById('p_2');
var p_3=document.getElementById('p_3');

//Вставляем в них соответствующие значения
p_1.innerHTML = 'str_1 + str_2 + str_3 => '+rez_1;
//Не забываем про экранирование
p_2.innerHTML = '"Давайте "+\' жить \'+`дружно!` => '+rez_2;
	
	
	
	
	

Пример №6. Примеры конкатенации строк

Помимо встроенной возможности конкатенации строк, в JavaScript присутствует свойство length глобального объекта String, позволяющее получить длину строки, т.е. количество 16-битных значений в ней, а также целый ряд методов данного объекта, позволяющих выполнять различные операции над строками (см. пример №7). Более подробную информацию по этим методам смотрите в нашем справочнике по JavaScript.

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

HTML CSS JS Результат BwCodes
<!DOCTYPE html>
<html>
<head>
	<!--  Сообщаем браузеру кодировку документа  -->
	<meta charset="utf-8">
	<meta name="robots" content="noindex">	
	<!--  Не забываем про заголовок документа  -->
	<title>Примеры обработки строк</title>
	
	<!-- Подключаем внешнюю таблицу стилей CSS -->
	<link rel="stylesheet" href="styles_1.css">
</head>
<body>

	<!-- Заполним при помощи скрипта example.js -->
	<p id="p_1"></p>
	<p id="p_2"></p>	
	<p id="p_3"></p>
	<p id="p_4"></p>
	<p id="p_5"></p>
	<p id="p_6"></p>
	<p id="p_7"></p>
	<p id="p_8"></p>
	<p id="p_9"></p>
	<p id="p_10"></p>
	<p id="p_11"></p>	
	<p id="p_12"></p>	
	<p id="p_13"></p>	
	<p id="p_14"></p>
	<p id="p_15"></p>
	
	<p>
		Строки в <span class="blue_letter">JavaScript</span> 
		являются неизменяемыми последовательностями символов. 
		Это значит, что различные методы не могут изменить саму 
		строку (например, добавить, удалить или изменить какие-либо 
		ее символы). Вместо этого они возвращают новую строку, 
		которую при желании можно затем присвоить переменной, 
		хранящей старую строку (имитируя тем самым изменение 
		исходной строки).		
	</p>	

	<!-- Подключаем внешний скрипт -->
	<script type="text/javascript" src="example.js"></script>
	
</body>
</html>
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	



	
	
	
/* Немножко оформим абзацы */
p{
width: 500px;
margin: auto;
margin-top: 30px;
padding: 10px;
border: 1px solid grey;
box-shadow: 1px 1px 3px grey;
background: linear-gradient(0deg, #eeeeee, #ffffff);
}

.blue_letter{ 
color: blue;
}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
//Сохраняем строку в переменной
var str_1 = "abc d";  
//Возвращает длину строки str_1, т.е. 5
//Тоже самое, что и "abc d".length
var len_1 = str_1.length;
//Создаем пустую строку (str_2.length==0)
var str_2 = "";

//Если строка состоит из 16-битных значений, то 
//ко всем символам строки можно получить доступ
//при помощи квадратных скобок (как в массивах)
//Возвращается символ 'a' (нумерация начинается с нуля)
var ch_1 = str_1[0];
//Возвращается символ 'с' (третий символ строки)
var ch_2 = str_1[2];
//Возвращается символ 'd' (5-1=4, т.е. str_1[4])
var ch_3 = str_1[str_1.length-1];

//Метод возвращает n-й символ строки ('a')
var ch_4 = str_1.charAt(0); 
//Возвращается символ 'с' (третий символ строки)
var ch_5 = str_1.charAt(2); 

//Метод возвращает часть строки "от и до"
//Вернет "abc", т.е. 1-й, 2-й и 3-й символы
var str_3 = str_1.substring(0,3); 
//Также вернет "abc", но данный метод может 
//принимать и отрицательные аргументы 
var str_4 = str_1.slice(0,3);
//Вернет "ab" (от 0 до 3 символа с конца строки)
var str_5 = str_1.slice(0,-3);
//Вернет "с в" (последние 3 символа)
var str_6 = str_1.slice(-3);

//Разбили строку на подстроки по пробелам
//Метод вернет массив строк ['abc', 'd']
var str_7 = str_1.split(" ");
//Перезапишем переменную, получив строку "abc"
str_7 = str_7[0];
 
//Заменили все символы "d" на "F" ("abc F")
//При этом str_1 осталась прежней!!!
var str_8 = str_1.replace("d", "F");
//Получим "ABC F" (str_8 не изменилась)
var str_9 = str_8.toUpperCase();

//Метод ищет первое вхождение с начала строки
//Узнаем номер символа 'c' (вернет 2)
var str_10 = str_1.indexOf("c");
//Метод ищет первое вхождение с конца строки
//В нашем случае опять вернет 2
var str_11 = str_1.lastIndexOf("c");
 
 
//Находим элементы 'p' по их  id
var p_1=document.getElementById('p_1');
var p_2=document.getElementById('p_2');
var p_3=document.getElementById('p_3');
var p_4=document.getElementById('p_4');
var p_5=document.getElementById('p_5');
var p_6=document.getElementById('p_6');
var p_7=document.getElementById('p_7');
var p_8=document.getElementById('p_8');
var p_9=document.getElementById('p_9');
var p_10=document.getElementById('p_10');
var p_11=document.getElementById('p_11');
var p_12=document.getElementById('p_12');
var p_13=document.getElementById('p_13');
var p_14=document.getElementById('p_14');
var p_15=document.getElementById('p_15');

//Вставляем в них соответствующие значения
p_1.innerHTML = 'str_1 => '+str_1+' (длина '+len_1+' символов)';
p_2.innerHTML = 'str_1[0] => '+ch_1;
p_3.innerHTML = 'str_1[2] => '+ch_2;
p_4.innerHTML = 'str_1[str_1.length-1] => '+ch_3;
p_5.innerHTML = 'str_1.charAt(0) => '+ch_4;
p_6.innerHTML = 'str_1.charAt(2) => '+ch_5;
p_7.innerHTML = 'str_1.substring(0,3) => '+str_3;
p_8.innerHTML = 'str_1.slice(0,3) => '+str_4;
p_9.innerHTML = 'str_1.slice(0,-3) => '+str_5;
p_10.innerHTML = 'str_1.slice(-3) => '+str_6;
p_11.innerHTML = 'str_1.split(" ").[0] => '+str_7;
p_12.innerHTML = 'str_1.replace("d", "F") => '+str_8;
p_13.innerHTML = 'str_8.toUpperCase() => '+str_9;
p_14.innerHTML = 'str_1.indexOf("c") => '+str_10;
p_15.innerHTML = 'str_1.lastIndexOf("c") => '+str_11;

Пример №7. Примеры обработки строк

Быстрый переход к другим страницам