JavaScript Строковые методы
Строковые методы помогают работать со строками.
Строковые методы и свойства
Примитивные значения, такие как "John Doe", не могут иметь свойств или методов (поскольку они не являются объектами).
Но с помощью JavaScript методы и свойства также доступны для примитивных значений, поскольку JavaScript обрабатывает примитивные значения как объекты при выполнении методов и свойств.
Длина строки
Свойство length возвращает длину строки:
Пример
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
Поиск строки в строке
Метод IndexOf () возвращает индекс (положение) первого вхождения заданного текста в строку:
Пример
var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate");
JavaScript подсчитывает позиции с нуля.
0 — первая позиция в строке, 1 — вторая, 2 — третья...
Метод LastIndexOf () возвращает индекс последнего вхождения заданного текста в строке:
Пример
var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("locate");
Оба IndexOf () и LastIndexOf () return-1, если текст не найден.
Пример
var str = "Please locate where 'locate' occurs!";
var pos = str.lastIndexOf("John");
Оба метода принимают второй параметр в качестве начальной позиции для поиска:
Пример
var str = "Please locate where 'locate' occurs!";
var pos = str.indexOf("locate",15);
Поиск строки в строке
Метод Search () ищет строку для заданного значения и возвращает позицию совпадения:
Пример
var str = "Please locate where 'locate' occurs!";
var pos = str.search("locate");
Вы заметили?
Два метода, IndexOf () и Search (), равны?
Они принимают одни и те же аргументы (параметры) и возвращают одно и то же значение?
Два метода не равны. Вот различия:
- Метод Search () не может принимать второй аргумент начального положения.
- Метод IndexOf () не может принимать мощные значения поиска (регулярные выражения).
Вы узнаете больше о регулярных выражениях в более поздней главе.
Извлечение строковых деталей
Существует 3 способа извлечения части строки:
- срез (начало, конец)
- подстрока (начало, конец)
- substr (начало, длина)
Метод slice ()
slice () извлекает часть строки и возвращает извлеченную часть в новой строке.
Метод принимает 2 параметра: начальный индекс (положение) и Конечный индекс (позиция).
Этот пример нарезает часть строки из позиции 7 в положение 13:
Пример
var str = "Apple, Banana, Kiwi";
var res = str.slice(7, 13);
The result of res will be:
Banana
Если параметр имеет отрицательное значение, позиция учитывается от конца строки.
Этот пример нарезает часть строки из позиции-12 в положение-6:
Пример
var str = "Apple, Banana, Kiwi";
var res = str.slice(-12, -6);
The result of res will be:
Banana
Если опустить второй параметр, метод выполнит срез оставшейся части строки:
Пример
var res = str.slice(7);
или, считая с конца:
Пример
var res = str.slice(-12);
Отрицательные позиции не работают в Internet Explorer 8 и более ранних версиях.
Метод подстроки ()
подстрока () аналогична срезу ().
Разница заключается в том, что подстрока () не может принимать отрицательные индексы.
Пример
var str = "Apple, Banana, Kiwi";
var res = str.substring(7, 13);
The result of res will be:
Banana
Если опустить второй параметр, подстрока () будет разрезать оставшуюся часть строки.
Метод substr ()
substr () похож на slice ().
Разница в том, что второй параметр указывает длину извлеченной детали.
Пример
var str = "Apple, Banana, Kiwi";
var res = str.substr(7, 6);
The result of res will be:
Banana
Если опустить второй параметр, substr () будет разрезать оставшуюся часть строки.
Пример
var str = "Apple, Banana, Kiwi";
var res = str.substr(7);
The result of res will be:
Banana, Kiwi
Если первый параметр отрицательный, позиция рассчитывается от конца строки.
Пример
var str = "Apple, Banana, Kiwi";
var res = str.substr(-4);
The result of res will be:
Kiwi
Замена содержимого строки
Метод Replace () заменяет указанное значение другим значением в строке:
Пример
str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3Schools");
Метод Replace () не изменяет строку, в которой он вызывается. Возвращает новую строку.
По умолчанию функция Replace () заменяет только первое совпадение:
Пример
str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3Schools");
По умолчанию функция Replace () учитывает регистр. Написание Microsoft (с верхним регистром) не будет работать:
Пример
str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3Schools");
Чтобы заменить регистр без учета регистра, используйте регулярное выражение с пометкой " i " (нечувствительно):
Пример
str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3Schools");
Обратите внимание, что регулярные выражения записываются без кавычек.
Чтобы заменить все совпадения, используйте регулярное выражение с флагом /g (глобальное совпадение):
Пример
str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3Schools");
Вы узнаете намного больше о регулярных выражениях в главе регулярные выражения JavaScript.
Преобразование в верхний и нижний регистр
Строка преобразуется в верхний регистр с toUpperCase ():
Пример
var text1 = "Hello World!"; // String
var text2 = text1.toUpperCase(); // text2 is text1 converted to upper
Строка преобразуется в нижний регистр с toLowerCase ():
Пример
var text1 = "Hello World!"; // String
var text2 = text1.toLowerCase(); // text2 is text1
converted to lower
Метод Concat ()
concat () соединяет две или более строк:
Пример
var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ", text2);
Вместо оператора Plus можно использовать метод concat () . Эти две строки делают то же самое:
Пример
var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ", "World!");
Все строковые методы возвращают новую строку. Они не изменяют исходную строку.
Формально сказал: строки являются неизменяемыми: строки не могут быть изменены, только заменены.
String.trim()
String.trim() Удаляет пробелы с обеих сторон строки.
Пример
var str = " Hello World! ";
alert(str.trim());
Строка. Trim () не поддерживается в Internet Explorer 8 или ниже.
Если вам нужно поддерживать IE 8, вы можете использовать String. Replace с регулярным выражением вместо:
Пример
var str = " Hello World! ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));