Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > поиск порядкового номера в строке


Автор: derfach 4.12.2013, 03:20
как реализовать код который разрешит поиск элементов в строке в зависимости от переменной...

есть строка которая записана в переменную, строка наведена выше...

Код

            var zm = name+" "+score;        
            var necessaryIndex = s.indexOf(zm.toString());
            var symbolBefore = s.substring(necessaryIndex -3, necessaryIndex-1);


один раз (zm = vmdg 2), в этом случае нужно вывести две цифры который стоят слева, то есть - 39
а в другой раз, например, (zm = s555is 555), нужно тогда вывести цифру слева, то есть - 8
третий пример, например, (zm = dima 0 ), нужно тогда вывести цифру слева, то есть - 110

в примере выше за  это отвечает s.substring(necessaryIndex -3, necessaryIndex-1), а именно - (necessaryIndex -3)

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


Автор: Bulat 4.12.2013, 07:39
Я в в построении js-регулярных выражений не очень силен, но например:

Код

      var str = "2 simon 2035 3 simon 2035 4 simon 2035 5 simon 2035 6 simon 2035 7 s555s 555 8 s555is 555 9 tt44 555 10 s555s 555 11 s555s 555 12 fr 553 13 s 200 14 a 100 15 �� 45 16 �� 45 17 �� 45 18 �� 45 19 �� 45 20 �� 45 21 �� 45 22 �� 45 23 �� 45 24 �� 45 25 zz 15 26 zz 15 27 faiza 3 28 vlad_faiza 2 29 dfdf 2 30 mgd 2 31 rfd 2 32 vbv 2 33 mnm 2 34 mnmnmm 2 35 fg 2 36 mm 2 37 oo 2 38 f 2 39 vmdg 2 40 dfg 2 41 y 2 42 b 2 43 ert 2 44 fdf 2 45 participant 1 2 46 mgd 1 47 vmdg 1 48 1q 1 49 rfvbg 1 50 rfv 1 110 dima 0"

      function RegExp () {
        //сначала делим все по конструкции - число, слово, число, например '2 simon 2035'
        var regex = /\d+\s\w+\s\d+/g;
        var result = str.match(regex);
        for (var i = 0; i < result.length; i++) {
          //получаем первое число
          var tmpStr = result[i];
          var regex_1 = /^(\d+)/;
          var result_1 = tmpStr.match(regex_1);
          alert(result_1[0]);
        }
      }
      RegExp();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)