Вы можете использовать строковые методы для работы со строками.

Строковые методы и свойства

Значения без свойств или методов, такие как «John Doe», считаются примитивными (поскольку они не являются объектами). Однако примитивные значения могут использовать методы и свойства JavaScript, поскольку JavaScript интерпретирует примитивные значения как объекты при выполнении методов и свойств.

Длина строки

Атрибут length возвращает длину строки.

```javascript
var txt = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’;
var alpha = txt.length;
```

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

Метод indexOf() возвращает позицию первого вхождения предоставленного текста строки. JavaScript начинает считать с нуля. В строке 0 — первое место, 1 — второе, 2 — третье.

```javascript
var str = “Please locate where ‘locate’ occurs!”;
var pos = str.indexOf(‘locate’);
```

Метод lastIndexOf() возвращает индекс последнего вхождения заданного текста в строку:

```javascript
var str = “Please locate where ‘locate’ occurs!”;
var pos = str.lastIndexOf(‘locate’);
```

Если текст не может быть получен, и indexOf(), и lastIndexOf() возвращают -1. Оба метода принимают второй параметр в качестве отправной точки поиска:

```javascript
var str = “Please locate where ‘locate’ occurs!”;
var pos = str.indexOf(‘locate’, 15);
```

Метод lastIndexOf() выполняет поиск в обратном направлении (с конца к началу), что означает, что если второй параметр равен 15, поиск начнется с позиции 15 и будет продолжаться до тех пор, пока строка не достигнет начала.

```javascript
var str = “Please locate where ‘locate’ occurs!”;
var pos = str.lastIndexOf(‘locate’, 15);
```

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

Метод search() ищет предоставленное значение в строке и возвращает позицию совпадения.

```javascript
var str = “Please locate where ‘locate’ occurs!”;
var pos = str.search(‘locate’);
```

Есть ли разница между indexOf() и search()? Они оба принимают одни и те же аргументы (параметры) и дают одинаковый результат, верно? Эти два подхода не эквивалентны. Это отличия:

Второй аргумент начальной позиции нельзя передать методу search().

Метод indexOf() не может обрабатывать большие значения поиска (регулярные выражения).

Извлечение частей строки

Есть три способа удалить часть строки:

- срез (начало, конец)

- подстрока (начало, конец)

- substr(начало, длина)

Метод slice()

slice() берет часть строки и возвращает ее как новую строку. Метод принимает два параметра: начальную и конечную позиции (конец не включен). В этом примере фрагмент строки с позиции 7 на позицию 12 (13–1) обрезается следующим образом:

```javascript
var str = ‘Apple, Banana, Kiwi’;
var res = str.slice(7, 13);
```

Позиция считается с конца строки, если параметр отрицательный.

Метод подстроки()

substring() похожа на slice(). Разница в том, что substring() не может принимать отрицательные индексы.

```javascript
var str = ‘Apple, Banana, Kiwi’;
var res = str.substring(7, 13);
```

Если вы опустите второй параметр, substring() удалит остальную часть строки.

Метод substr()

slice() можно сравнить с substr(). Второй вариант, с другой стороны, устанавливает длину извлеченной секции.

```javascript
var str = ‘Apple, Banana, Kiwi’;
var res = str.substr(7, 6);
```

Результатом res будет:

Банан

Substr() отрезает оставшуюся часть строки, если второй параметр опущен.

```javascript
var str = ‘Apple, Banana, Kiwi’;
var res = str.substr(7);
```

Результат res будет

Банан, Киви

Если первый параметр отрицательный, позиция считается с конца строки.

```javascript
var str = ‘Apple, Banana, Kiwi’;
var res = str.substr(-4);
```

Результатом res будет:

киви

Метод concat()

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

```javascript
var text1 = ‘Hello’;
var text2 = ‘World’;
var text3 = text1.concat(‘ ‘, text2);
```

Вместо использования оператора «плюс» вы можете использовать функцию concat(). Эти две линии выполняют одну и ту же функцию.

```javascript
var text = ‘Hello’ + ‘ ‘ + ‘World!’;
var text = ‘Hello’.concat(‘ ‘, ‘World!’);
```

Новая строка возвращается всеми строковыми функциями. Они никак не изменяют исходную строку.

Строки неизменяемы в соответствии с формальным определением: строки можно только заменять, но не изменять.

Строка.trim()

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

```javascript
var str = ‘ Hello World! ‘;
alert(str.trim());
```

Если вам нужна поддержка IE 8, вместо этого вы можете использовать replace() с регулярным выражением.

```javascript
var str = ‘ Hello World! ‘;
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ‘’));
```

Вы также можете использовать приведенное выше решение для замены, чтобы добавить функцию обрезки в JavaScript String.prototype:

```javascript
if (!String.prototype.trim) {
String.prototype.trim = function() {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ‘’);
};
}
var str = ‘ Hello World! ‘;
alert(str.trim());
```

Извлечение строковых символов

Существует 3 метода извлечения строковых символов:

- charAt(позиция)

- charCodeAt (позиция)

- Метод charAt()

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

```javascript
var str = ‘HELLO WORLD’;
str.charAt(0); // returns H
```

Метод charCodeAt()

Юникод символа по определенному индексу в строке возвращается методом charCodeAt(): эта процедура возвращает код UTF-16 (целое число от 0 до 65535).

```javascript
var str = ‘HELLO WORLD’;
str.charCodeAt(0); // returns 72
```

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

Метод split() можно использовать для преобразования строки в массив:

Если разделитель не указан, возвращаемый массив будет содержать всю строку с индексом [0].

Возвращаемый массив будет массивом из одиночных символов, если разделителем является "":

```javascript
var txt = ‘a,b,c,d,e’; // String
txt.split(‘,’); // Split on commas
txt.split(‘ ‘); // Split on spaces
txt.split(‘|’); // Split on pipe.
```

Ресурсы

Вам могут пригодиться следующие ресурсы:

Учебник: События Javascript

Учебник: Цикл Javascript

Учебник: поток управления Javascript