Функции извлечения подстроки из строки

Для объекта String определены следующие функции извлечения подстроки из строки: slice(), substring()и substr().

Функции

slice(индекс1, индекс2),

и

substring(индекс1, индекс2)

действуют одинаково и возвращают новую строку, которая содержит подстроку исходной строки, начиная с индекса1 и заканчивая позицией в строке, на единицу меньшей, чем индекс2. Если индекс2 опущен, выделение производится до конца строки. Если индекс1 и/или индекс2 являются отрицательными, значения индекс1 и индекс2 получаются вычитанием заданных значений из длины строки.

Функция

substr(индекс, длина)

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

Пример 4.4.50. Использование функций извлечения подстроки из строки объекта String:

1. // Ввод исходной строки

inputString = prompt("Введите исходную строку:","");

// Ввод граничной строки

rangeString = prompt("Введите граничную строку:","");

// Определение левой граничной строки

firstEntryIndex = inputString.indexOf(rangeString);

// Если левая граничная строка

// не найдена в исходной строке

if(firstEntryIndex == -1)

// Вывод сообщения

alert("Не найдена граница строки слева");

else

{

// Определение второго вхождения граничной строки

secondEntryIndex =

inputString.indexOf(rangeString,rangeString.length);

// Если правая граничная строка

// не найдена в исходной строке

if(secondEntryIndex == -1)

// Вывод сообщения

alert("Не найдена граница строки справа");

else

{

// Определение выводимой строки

outputString =

inputString.slice(firstEntryIndex +

rangeString.length, secondEntryIndex);

// Вывод строки

alert("Найдена строка '" + outputString + "'");

}

}

Этот фрагмент сценария определяет в исходной строке подстроку, ограниченную слева и справа заданной строкой.

Пример выполнения этого фрагмента приведен ниже:

2. // Ввод исходной строки

inputString = prompt("Введите исходную строку:","абракадабра");

// Бесконечный цикл

while(true)

{

// Ввод начального индекса выделяемой подстроки

beginIndexStr = prompt("Введите начальный индекс" +

"выделяемой подстроки:","");

// Преобразование индекса в число

beginIndex = Number(beginIndexStr);

// Если индекс - число

if(!isNaN(beginIndex)&& beginIndex >= 0)

// Выход из цикла

break;

// Вывод сообщения об ошибке

alert("Введен неверный начальный индекс: '" +

beginIndexStr + "'");

}

// Бесконечный цикл

while(true)

{

// Ввод длины выделяемой подстроки

substrLengthStr = prompt("Введите длину выделяемой" +

" подстроки: ","");

// Преобразование длины в число

substrLength = Number(substrLengthStr);

// Если индекс - число

if(!isNaN(substrLength) && substrLength > 0)

// Выход из цикла

break;

// Вывод сообщения об ошибке

alert("Введена неверная длина строки: '" +

substrLengthStr + "'");

}

// Определение выводимой подстроки заданной длины

outputSubstring =

inputString.substr(beginIndex, substrLength);

// Вывод результата

alert("Исходная строка: '" + inputString +

"'\nПодстрока: '" + outputSubstring + "'");

Этот фрагмент сценария определяет в исходной строке подстроку, начинающуюся с заданного индекса или заданной длины.

Пример выполнения этого фрагмента приведен ниже:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: