ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Функции вставки и замены подстрок

Функции вставки и замены подстрок

При обработке строк часто требуется вставить подстроки или заменить подстроки. Удаление подстроки из строки можно рассматривать как частный случай замены, а именно замены удаленной подстроки пустой строкой. С помощью метода String можно написать программу для решения этой задачи. Для этого создадим функцию myStr(), с помощью которой будет вставлена строка в исходную строку. Данная функция будет иметь три параметра:

  • х1 — исходная строка;
  • х2 — вставляемая строка;
  • i — индекс позиции вставки;

function myStr(х1,х2,i) {
return x1.slice(0,i)+x2+x1.slice(i)
}

Где,

  • x1.slice(0,i) — метод String, возвращает подстроку исходной строки, начальный и конечный индексы которой указываются параметрами, за исключением последнего символа. Если второй параметр не указан, то возвращается подстрока с начальной позицией и до конца строки. Отсчет позиций начинается с начала строки.
  • return x1.slice(0,i)+x2+x1.slice(i) — возвращает полученное значение.

Рассмотрим пример.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Методы String</title>
<script language="JavaScript">
x1="Привет всем! "
x2="Изучайте JavaScript и вы не пожалеете об этом!".fontcolor('FF00F0');

function myStr(){

return x1.slice(0,13)+x2+x1.slice(13)
}
document.write(myStr())
</script>
</head>

<body>
</body>
</html>

Где, fontcolor('FF00F0') — метод форматирования строк, задает цвет строки.

В окне веб-браузера это будет выглядеть ТАК.

Теперь создадим функцию myStr1, которая заменяет в исходной строке все вхождения заданной подстроки на подстроку замены. Она должна иметь три параметра:

  • х1 – исходная строка;
  • х2 – заменяемая подстрока;
  • х3 – подстрока заменяющая все вхождения х2 в х1 (х2 может встречаться в х1 несколько раз);

Находим прежде всего все вхождения х2 в х1. Если исходная строка не содержит в себе подстрок х2, то функция должна вернуть исходную подстроку без всяких изменений. В противном случае требуется изъять из х1 все вхождения в х2, а на их место вставить подстроку х3. Полученная таким образом строка должнавозвращаться функцией в качестве результата.

function myStr1(x1,x2,x3){
var x="" //Обработанная часть строки
while (true) {
i=x1.indexOf(x2) //индекс вхождения х1 в х2
if (i>=0) {
x=x+x1.substr(0,i) + x3 //обработанная часть строки
x1=x1.substr(i+x2.length) //оставшаяся часть строки
}else break
}
return x+x1
}

Где,

  • var x="" – обработанная часть строки;
  • while (true) – оператор цикла(до тех пор пока). При выполнении этого оператора сначала производится проверка условия, указанного в заголовке, т.е. в круглых скобках. Если оно истинно, то выполняется код в теле опратора цикла, заключенного в фигурные скобки. В противном случае код не выполняется. При выполнении кода(завершении первой итерации) вычислительный процесс возвращается к заголовку, где снова проверяются условия;
  • i=x1.indexOf(x2) – метод строки, производит поиск строки, указанной параметром, и возвращает индекс ее первого вхождения. Возвращаемое число (индекс вхождения) отсчитывается от 0. Если поиск не удачен, то возвращается -1. Поиск в пустой строке всегда возвращает -1. Поиск пустой строки всегда возвращает 0. Второй параметр, не являющийся обязательным, указывает индекс, с которого следует начать поиск;
  • if (i>=0) – оператор условного перехода;
  • x1.substr(0,i) – возвращает подстроку исходной строки, начальный индекс и длина которой указываются параметрами;
  • x2.length – строковой объект, значением которого является длина строки (количество символов в строке);
  • else – оператор сравнения;

Рассмотрим пример.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Методы String</title>
<script language="JavaScript">
x1="Привет всем! "
x2="Изучайте JavaScript"
x3=" и вы не пожалеете об этом!"
function myStr1(){
var x="" //Обработанная часть строки
while (true) {
i=x1.indexOf(x2) //индекс вхождения х1 в х2
if (i>=0) {
x=x+x1.substr(5,1) + x3 //обработанная часть строки
x1=x1.substr(1+x2.length) //оставшаяся часть строки
}else break
}
return x+x1
}
document.write(myStr1())
</script>
</head>

<body>
</body>
</html>

В окне веб-браузера это будет выглядеть ТАК.