Методы строк JavaScript

Строковые методы помогают вам обрабатывать строки.

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

Исходные значения, такие как "Bill Gates", не могут иметь свойств и методов (поскольку они не объекты).

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

Длина строки

length Свойство возвращает длину строки:

Пример

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

Попробуйте сами

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

indexOf() Метод возвращает положение заданного текста в строкеПервый разИндекс первого出现的 (позиция):

Пример

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");

Попробуйте сами

JavaScript счет начинается с нуля.

0 является первой позицией в строке, 1 - второй, 2 - третьей ...

lastIndexOf() Метод возвращает положение заданного текста в строкеВ конце концовИндекс первого出现的:

Пример

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");

Попробуйте сами

Если текст не найден: indexOf() и lastIndexOf() Все возвращают -1.

Пример

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");

Попробуйте сами

Оба метода принимают в качестве второго параметра позицию начала поиска.

Пример

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);

Попробуйте сами

lastIndexOf() Метод ищет в обратном порядке (от конца к началу), что означает: если второй параметр равен 50, то поиск начинается с позиции 50 и до начала строки.

Пример

var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China", 50);

Попробуйте сами

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

search() Метод поиска определенного значения строки и возврат位置的:

Пример

var str = "The full name of China is the People's Republic of China.";
var pos = str.search("locate");

Попробуйте сами

Вы заметили?

два метода,indexOf() и search(), этоРавны.

Эти два метода не равны. Разница заключается в:

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

Вы узнаетеРегулярные выраженияиз главы, чтобы узнать эти более мощные значения поиска.

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

Есть три метода для извлечения частей строки:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

Метод slice()

slice() Извлекает часть строки и возвращает извлеченную часть в новом строковом значении.

Этот метод устанавливает два параметра: начальный индекс (начало), конечный индекс (конец).

Этот пример отрезает фрагмент строки с позиции 7 до позиции 13:

Пример

var str = "Apple, Banana, Mango";
var res = str.slice(7,13);

Результат res:

Banana

Попробуйте сами

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

Этот пример отрезает фрагмент строки с позиции -12 до позиции -6:

Пример

var str = "Apple, Banana, Mango";
var res = str.slice(-13,-7);

Результат res:

Banana

Попробуйте сами

Если второй параметр опущен, то этот метод отрежет оставшуюся часть строки:

Пример

var res = str.slice(7);

Попробуйте сами

Или начнем с конца:

Пример

var res = str.slice(-13);

Попробуйте сами

Совет:Негативные значения позиции не适用ны для Internet Explorer 8 и более ранних версий.

Метод substring()

substring() Похож на slice().

Разница заключается в substring() Негативные индексы不接受.

Пример

var str = "Apple, Banana, Mango";
var res = str.substring(7,13);

Результат res:

Banana

Попробуйте сами

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

Метод substr()

substr() Похож на slice().

Разница заключается в том, что второй параметр определяет часть, которую нужно извлечь:Длина.

Пример

var str = "Apple, Banana, Mango";
var res = str.substr(7,6);

Результат res:

Banana

Попробуйте сами

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

Пример

var str = "Apple, Banana, Mango";
var res = str.substr(7);

Попробуйте сами

Результат res:

Banana, Mango

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

Пример

var str = "Apple, Banana, Mango";
var res = str.substr(-5);

Попробуйте сами

Результат res:

Mango

Второй параметр не может быть отрицательным, так как он определяет длину.

Заменить содержимое строки

replace() Метод заменяет значение, указанное в строке, на другое:

Пример

str = "Please visit Microsoft!";
var n = str.replace("Microsoft", "W3School");

Попробуйте сами

replace() Метод не изменяет строку, которую он вызывает. Он возвращает новую строку.

По умолчанию,replace() заменяет только первое соответствие:

Пример

str = "Please visit Microsoft and Microsoft!";
var n = str.replace("Microsoft", "W3School");

Попробуйте сами

По умолчанию,replace() По умолчанию, чувствителен к регистру. Таким образом, не соответствует "MICROSOFT":

Пример

str = "Please visit Microsoft!";
var n = str.replace("MICROSOFT", "W3School");

Попробуйте сами

Если нужно выполнить замену, не учитывая регистра, используйте регулярное выражение /i(независимо от регистра):

Пример

str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");

Попробуйте сами

Обратите внимание, что регулярные выражения не содержат кавычек.

Если нужно заменить все соответствия, используйте опцию g Знак (используется для глобального поиска):

Пример

str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");

Попробуйте сами

Вы узнаете больше о JavaScript регулярных выражениях в этой главеРегулярные выражениясодержание.

Преобразование в верхний и нижний регистр

Через toUpperCase() Преобразование строки в верхний регистр:

Пример

var text1 = "Hello World!";       // строка
var text2 = text1.toUpperCase();  // text2 является преобразованной в верхний регистр text1

Попробуйте сами

Через toLowerCase() Преобразование строки в нижний регистр:

Пример

var text1 = "Hello World!";       // строка
var text2 = text1.toLowerCase();  // text2 является преобразованной в нижний регистр text1

Попробуйте сами

Метод concat()

concat() Соединение двух или нескольких строк:

Пример

var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2);

Попробуйте сами

concat() Методы можно использовать вместо оператора сложения. Вот два эквивалентных примера:

Пример

var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!");

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

Формально говоря: строка является неизменяемой: строку нельзя изменить, можно только заменить.

String.trim()

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

Пример

var str = "       Hello World!        ";
alert(str.trim());

Предупреждение:Internet Explorer 8 или более ранние версии не поддерживают trim() Метод.

Попробуйте сами

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

Пример

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

Попробуйте сами

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

Пример

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(position)
  • charCodeAt(position)

charAt() метод

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

Пример

var str = "HELLO WORLD";
str.charAt(0);            // Возврат H

Попробуйте сами

Метод charCodeAt()

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

Пример

var str = "HELLO WORLD";
str.charCodeAt(0);         // Возврат 72

Попробуйте сами

Свойства доступа (Property Access)

ECMAScript 5 (2009) позволяет использовать доступ к свойствам строк [ ]:

Пример

var str = "HELLO WORLD";
str[0];                   // Возврат H

Попробуйте сами

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

  • Не поддерживается в Internet Explorer 7 или более ранних версиях
  • Это делает строку похожей на массив (на самом деле это не так)
  • Если找不到字符:[ ] Возврат undefinedа charAt() Возврат пустой строки.
  • Это только для чтения.str[0] = "A" Не вызывает ошибку (но и не работает!)

Пример

var str = "HELLO WORLD";
str[0] = "A";             // Не вызывает ошибку, но не работает
str[0];                   // Возврат H

Попробуйте сами

Совет:Если вы хотите обрабатывать строку как массив, вы можете сначала преобразовать её в массив.

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

Можно split() Преобразовать строку в массив:

Пример

var txt = "a,b,c,d,e";   // Строка
txt.split(",");          // Разделить на запятую
txt.split(" ");          // Разделить на пробел
txt.split("|");          // Разделить на竖ную черту

Попробуйте сами

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

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

Пример

var txt = "Hello";       // Строка
txt.split("\""

Попробуйте сами

Полное руководство по String

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

Эта книга включает описание и примеры всех свойств и методов строк.