ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

JavaScript учебник

JS HOME JS Introduction JS Where To JS Output JS Statements JS Syntax JS Comments JS Variables JS Operators JS Arithmetic JS Assignment JS Data Types JS Functions JS Objects JS Scope JS Events JS Strings JS String Methods JS Numbers JS Number Methods JS Arrays JS Array Methods JS Array Sort JS Array Iteration JS Dates JS Date Formats JS Date Get Methods JS Date Set Methods JS Math JS Random JS Booleans JS Comparisons JS Conditions JS Switch JS Loop For JS Loop While JS Break JS Type Conversion JS Bitwise JS RegExp JS Errors JS Debugging JS Hoisting JS Strict Mode JS this Keyword JS Style Guide JS Best Practices JS Mistakes JS Performance JS Reserved Words JS Versions JS Version ES5 JS Version ES6 JS JSON

JS Forms

JS Forms Forms API

JS Objects

Object Definitions Object Properties Object Methods Object Constructors Object Prototypes

JS Functions

Function Definitions Function Parameters Function Invocation Function Call Function Apply Function Closures

JS HTML DOM

DOM Intro DOM Methods DOM Document DOM Elements DOM HTML DOM CSS DOM Animations DOM Events DOM Event Listener DOM Navigation DOM Nodes DOM Collections DOM Node Lists

JS Browser BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS AJAX

AJAX Intro AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications

JS JSON

JSON Intro JSON Syntax JSON vs XML JSON Data Types JSON Objects JSON Arrays JSON Parse JSON Stringify JSON PHP JSON HTML JSON JSONP

JS References

JavaScript Objects HTML DOM Objects


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, ''));
'>

Можно также использовать Replace решение выше, чтобы добавить функцию обрезки в строку 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());
'>

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

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

  • charAt (позиция)
  • charCodeAt (позиция)

Метод charAt ()

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

Пример

var str = "HELLO WORLD";
str.charAt(0);            // returns H

Метод charCodeAt ()

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

Пример

var str = "HELLO WORLD";

str.charCodeAt(0);         // returns 72

Доступ к строке в виде массива небезопасен

Возможно, вы видели такой код, обращаясь к строке как к массиву:

var str = "HELLO WORLD";

str[0];                   // returns H

Это небезопасно и непредсказуемо:

  • Она не работает во всех браузерах (не в IE5, IE6, IE7)
  • Это делает строки выглядят как массивы (но они не являются)
  • str [0] = "H" не дает ошибки (но не работает)

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


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

Строка может быть преобразована в массив с помощью метода Split () :

Пример

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

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

Если разделитель "", возвращаемый массив будет массивом из одного символа:

Пример

var txt = "Hello";       // String
txt.split("");           // Split in characters

Полная ссылка на строку

Для полной справки перейдите к нашей полной ссылке на строку JavaScript.

Ссылка содержит описания и примеры всех строковых свойств и методов.