2010-05-17 3 views
0
<th>Prêmio</th> 
    <td colspan="11"> 
    <div class="res"><img class="r1" src="img/x.gif" alt="Madeira" title="Madeira" />215 | <img class="r2" src="img/x.gif" alt="Barro" title="Barro" />193 | <img class="r3" src="img/x.gif" alt="Ferro" title="Ferro" />192 | <img class="r4" src="img/x.gif" alt="Cereal" title="Cereal" />202</div><div class="carry"><img class="car" src="img/x.gif" alt="carregamento" title="carregamento" />802/1800</div></td></tr></tbody></table><table cellpadding="1" cellspacing="1" class="defender"> 
    <thead> 
    <tr> 

Я пытаюсь получить «802/1800», но это сводит меня с ума. если я использую:Javascript REGEX

var myregexp = /title="carregamento"/; 

работает

, но переход к следующему шагу, который:

var myregexp = /title="carregamento" \/>/ 

уже returs меня пустым.

var myregexp = /title="carregamento" \/>/; 

var match = myregexp.exec(document.documentElement.innerHTML); 

FM_log(7,"match="+match); 

if (match != null) 
    resultado.push(match[1]); 
+0

Это работает для меня .. Вы делаете это в YQL или в теге «CDATA» или что-то в этом роде? Выражение также работает на [RegexPal] (http://regexpal.com) – sirhc

+0

Нет, я не. Все еще не работает. – FernandoSBS

ответ

1

Возможно, вы должны опубликовать точный код, потому что может быть что-то не так, что неправильно связано с объектом регулярного выражения.

Если я тестирую это на regextester.com, он отлично работает.

Я использую следующее регулярное выражение и соответствует строке до 802/1800 и выбирает 802/1800 в группу захвата.

title="carregamento" \/>(\d+\/\d+) 
+0

вниз остальная часть кода, связанного с этим. – FernandoSBS

+0

regextester.com работает, но нет, если вы используете правильный синтакс, который является /title = "carregamento" \ /> (\ d + \/\ d +)/ – FernandoSBS

+0

Символы "/", обозначающие строку, представляют собой регулярное выражение в javascript не требуется. Вам нужно только указать фактическую строку регулярных выражений – Rich

1

Регулярное выражение вы вывесили правильно:

вар myregexp =/название = "carregamento" />/

на самом деле это одна строка соответствует только перед тем "802/1800" строка

+0

полный код не работает. он возвращает меня как null. – FernandoSBS

0

Обнаружена проблема. По-видимому, есть разница между тем, что показывает мне Firefox, когда я выбираю «источник документа просмотра» и какой javascript дает мне источник. Вот разница:

светлячок источник:

<img class="car" src="img/x.gif" alt="carregamento" title="carregamento" />802/1800</div> 

Javascript Источник: (Я создал LOG показал мне document.documentElement.innerHTML

<img class="car" src="img/x.gif" alt="carregamento" title="carregamento">802/1800</div> 

поэтому разница была лишь />

Я также улучшил код до:

 var myregexp = /title="carregamento">(.+?)\/(.+?)<\/div>/; 


     FM_log(7,"myregexp="+myregexp); 

     var resultado = []; 

     var match = myregexp.exec(document.documentElement.innerHTML); 

     //FM_log(7, document.documentElement.innerHTML); 

     FM_log(7,"match="+match); 

     if (match != null) { 
      resultado.push(match[1]) 
      resultado.push(match[2]) 
      }; 

     FM_log(7,"resultado[0]="+resultado[0]+" resultado[1]="+resultado[1]);   

     efficiency = Math.round(resultado[0]/resultado[1] * 100); 

     gain = resultado[0]; 

это окончательный код и работает отлично.

Спасибо всем, кто внес свой вклад.