Яндекс цитирования
 

Web-программирование

 

[ В начало раздела ]

Получение индекса элемента в строке (JavaScript)

Здесь я хочу продемонстрировать функцию, которая находит подстроку-элемент в строке подобных элементов, разделенных символом "|". Эта функция выполняет следующие функции: - находит номер элемента - находит элемент слева и справа от искомого элемента

Назовем нашу функцию ExecMyProc, а передаваемым параметром будет элемент для поиска.

1. Объявляем функцию, инициализируем переменные

  function ExecMyProc(kod) {
    var sfull = document.FORM1.FULLKOD.value;
    var sfulllen = sfull.length;
    var kleft = "";
    var kright = "";
    var kodstart = 0;
    var kodend = 0;
2. Находим стартовую позицию искомого элемента
  //---- поиск позиции ----    
  kod += "|";  alert(kod);

kodlen = kod.length; for(i=0;i<=sfulllen;i++) { comp = sfull.substring(i,sfulllen); comp = comp.substring(0,kodlen); if(comp == kod) { kodstart = i; break } } kodend = kodstart + (kodlen - 1);

3. Находим элемент слева
  //---- поиск элемента слева ------
  var p1=0;
  for(i=kodstart-2;i>0;i--)
  {
    if (sfull.charAt(i)=="|") {p1=i+1; break }
  }
  kleft = sfull.substring(p1, sfulllen);
  kleft = kleft.substring(0, kodstart-p1-1);
4. Получаю позицию-индекс элемента
  //--- индекс ---
  var idx = 1;
  for(i=0;i<kodstart;i++) {
    if (sfull.charAt(i)=="|") {idx++}
  }
5. Находим элемент справа
  //---- поиск элемента справа ------
  p2 = sfull.indexOf("|", kodend+1);
  kright = sfull.substring(kodend+1, sfulllen);
  kright = kright.substring(0, p2-kodend-1);
6. Выводим результаты
  //---- печать результатов ----
  document.FORM1.KODLEFT.value = kleft;
  document.FORM1.KODRIGHT.value = kright;
  document.FORM1.KODINDEX.value = idx;
Демонстрационная форма имеет следующий код:
  <FORM NAME="FORM1">
    FULL  <INPUT TYPE=TEXT NAME=FULLKOD SIZE=40 VALUE="12345|564321|8943|2231443|545443|">
    CODE  <INPUT TYPE=TEXT NAME=CODE VALUE="8943">
    --- RESULTS ---
    LEFT  <INPUT TYPE=TEXT NAME=KODLEFT VALUE="">
    RIGHT <INPUT TYPE=TEXT NAME=KODRIGHT VALUE="">
    INDEX <INPUT TYPE=TEXT NAME=KODINDEX VALUE="">

<INPUT TYPE=BUTTON NAME=B1 VALUE="EXECUTE" onClick="ExecMyProc(CODE.value)"> <INPUT TYPE=RESET NAME=B2 VALUE="RESET"> </FORM>

Вот и все. Очень полезная функция, не правда ли?

© Долгов С.В. 21.06.00

 

[ В начало раздела ]


 

 

Все для web-дизана!!! Бард-Путеводитель Много Всего CGI-Гид. Лучшие скрипты... WDH - WebDesignHelp - CGI, JAVA, APPLETS, TOP100! Раскрутка, увеличение посещаемости и индекса цитируемости в поисковых системах.

© 2000-2002 Долгов Сергей

dolgov_sergei@mail.ru

X