Чтение онлайн

ЖАНРЫ

JavaScript. Подробное руководство, 6-е издание
Шрифт:

Возвращаемое значение

Позиция начала первой подстроки в строке, соответствующей выражению regexp или -1, если соответствие не найдено.

Описание

Метод

search
ищет подстроку в строке, соответствующую регулярному выражению regexp, и возвращает позицию первого символа найденной подстроки или -1, если соответствие не найдено.

Метод не выполняет глобального поиска, игнорируя флаг «g». Он также игнорирует свойство

regexp.lastlndex
и всегда выполняет поиск с начала строки,
следовательно, всегда возвращает позицию первого соответствия, найденного в строке.

Пример

var s = "JavaScript is fun";

s.search(/script/i) // Вернет 4

s.search(/a(.)a/) // Вернет 1

См. также

RegExp, RegExp.exec, RegExp.test, String.match, String. replace; глава 10

String.slice

извлечение подстроки

Синтаксис

строка.siice(начало, конец)

Аргументы

начало Индекс в строке, с которого должен начинаться фрагмент. Если этот аргумент отрицателен, он обозначает позицию, измеряемую от конца строки. То есть -1 соответствует последнему символу, -2 - второму с конца и т. д.

конец Индекс символа исходной строки непосредственно после конца извлекаемого фрагмента. Если он не указан, фрагмент включает все символы от позиции начало до конца строки. Если этот аргумент отрицателен, он обозначает позицию, отсчитываемую от конца строки.

Возвращаемое значение

Новая строка, которая содержит все символы строки, начиная с символа в позиции начало (и включая его) и заканчивая символом в позиции конец (но не включая его).

Описание

Метод

slice
возвращает строку, содержащую фрагмент, или подстроку строки, но не изменяет строку.

Методы

slice, substring
и признанный устаревшим метод
substr
объекта
String
возвращают части строки. Метод
siice
более гибок, чем
substring,
поскольку допускает отрицательные значения аргументов. Метод
slice
отличается от
substr
тем, что задает подстроку с помощью двух символьных позиций, a
substr
использует одно значение позиции и длину. Кроме того,
String.slice
является аналогом
Array.slice.

Пример

var s = "abcdefg";

s.slice(0,4) // Вернет "abed"

s.slice(2,4) // Вернет "cd"

s.slice(4) // Вернет "efg"

s.slice(3,-1) //Вернет "def"

s.slice(3,-2) //Вернет "de"

s.slice(-3,-1) // Должен вернуть "ef"; в IE 4 возвращает "abedef"

Ошибки

Отрицательные

значения в аргументе начало не работают в Internet Explorer 4 (в более поздних версиях Internet Explorer эта ошибка исправлена). Они обозначают не символьную позицию, отсчитываемую от конца строки, а позицию 0.

См. также

Array. slice, String, substring

String.split

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

Синтаксис

строка.split(разделитель, лимит)

Аргументы

разделитель Строка или регулярное выражение, по которому разбивается строка,

лимит Необязательное целое, определяющее максимальную длину полученного массива. Если этот аргумент указан, то количество возвращенных подстрок не будет превышать указанное. Если он не указан, разбивается вся строка независимо от ее длины.

Возвращаемое значение

Массив строк, создаваемый путем разбиения строки на подстроки по границам, заданным разделителем. Подстроки в возвращаемом массиве не включают сам разделитель, кроме описываемого далее случая.

Описание

Метод

split
создает и возвращает массив подстрок указанной строки, причем размер возвращаемого массива не превышает указанный лимит. Эти подстроки создаются путем поиска текста, соответствующего разделителю, в строке от начала до конца и разбиения строки до и после найденного текста. Ограничивающий текст не включается ни в одну из возвращаемых строк, кроме случая, описываемого далее. Следует отметить, что, если разделитель соответствует началу строки, первый элемент возвращаемого массива будет пустой строкой - текстом, присутствующим перед разделителем. Аналогично, если разделитель соответствует концу строки, последний элемент массива (если это не противоречит значению аргумента лимит) будет пустой строкой.

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

Ранее отмечалось, что подстроки в массиве, возвращаемом описываемым методом, не содержат текст разделителя, использованного для разбиения строки. Однако если разделитель - это регулярное выражение, содержащее подвыражения в скобках, то подстроки, соответствующие этим подвыражениям (но не текст, соответствующий регулярному выражению в целом), включаются в возвращаемый массив.

Метод

String.split
является обратным методу
Array.join.

Пример

Метод

split
наиболее полезен при работе с сильно структурированными строками:

"1:2:3:4:5".split(":");// Вернет ["1","2","3","4”,"5"]

'|а|b|с|”.split("|"); // Вернет ["","а", "b", "с", ""]

Еще одно распространенное применение метода

split
состоит в разбиении команд и других подобных строк на слова, разделенные пробелами:

Поделиться с друзьями: