Методы строк JavaScript
- Предыдущая страница JS строка
- Следующая страница JS поиск строки
Строковые методы помогают вам обрабатывать строки.
Методы и свойства строк
Исходные значения, такие как "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.
Эта книга включает описание и примеры всех свойств и методов строк.
- Предыдущая страница JS строка
- Следующая страница JS поиск строки