регэкспы глючат
var rx=/([0-9]+)\s+PTZ/igm; console.log("processing element with id",this.id); console.log(this.html); console.log(rx.exec(this.html)[1]); console.log(rx.exec(this.html)[1]); console.log(rx.exec(this.html)[1]); rx.lastIndex=0; //ну и дальше там присваивание найденного свойствам это - часть содержимого метода мы им проходим по массиву экземпляров класса 2 элемента обрабатывает и падает с ошибкой в regexcoach всё норм (если подсунуть исходник, выведенной функцией,если взять самому через иннерхтмл - то тоже в регекскоаче всё норм), если вручную вызвать код - тоже всё норм, а в цикле падает с ошибкой типа ничего не нашло что за ппц и как исправить |
Похоже, дело в самом цикле
|
Цитата:
<телепат> Сдается мне, что падает только в Лисе. В последних версиях хрома и оперы ошибок быть не должно (Остальные браузеры тоже могут падать). А все из-за статических особенностей регэкспов в JS. </телепат> |
this.parseInfo=function(){ var rx=new RegExp("([0-9]+)\\s+PTZ","igm"); console.log("processing element with id",this.id); this.startBid=Number(rx.exec(this.html)[1]); this.currentBid=Number(rx.exec(this.html)[1]); this.nextBid=Number(rx.exec(this.html)[1]); rx=new RegExp("([0-9]+):([0-9]+):([0-9]+)","ig"); var time=rx.exec(this.html); this.remaining=Number(time[1]*3600)+Number(time[2]*60)+Number(time[3]); this.remainingStr=time[0]; } поправил создание регекспа, а всё равно падает, только теперь - на первом элементе <h4></h4> <h3>PS3 Madden NFL 2010</h3> <div class="item-holder"> <div class="img-holder"><img src="http://static.lockerz.com/auction/med/E01-01-P000-00088-00000_01.jpg" alt="PS3 Madden NFL 2010"></div> <div class="expanded-details"> <ul class="auction-image-list"> <li>http://static.lockerz.com/auction/med/E01-01-P000-00088-00000_01.jpg</li> <li>http://static.lockerz.com/auction/med/E01-01-P000-00088-00000_02.jpg</li> <li>http://static.lockerz.com/auction/med/E01-01-P000-00088-00000_03.jpg</li> </ul> <div class="details"> <ul> <li>Supports up to 32 teams</li> <li>Allows owners to manage organization away from console via Internet or iPhone</li> <li>Cartoon series regulars perform voice acting</li> <li>US/Canada-compatible only</li> <li>Rated T</li> </ul> <!-- <p>Product sku: E01-01-P000-00088-00000-0NA</p> --> <input name="sku" value="E01-01-P000-00088-00000-0NA" type="hidden"> </div> </div> <p style="display: block;" class="time hidden">Time remaining:<br>5:48:15</p> <p class="openingBid">Opening Bid: 5 PTZ</p> <p class="currentBid">Current Bid: 1475 PTZ</p> <p class="yourBid">Your Bid: 1480 PTZ</p> <input class="ptz-needed" name="ptzReq" id="ptzReq2222" value="1475" type="hidden"> <input class="auction-id" value="2222" type="hidden"> <input class="opening-bid" name="opening-bid" value="5" type="hidden"> <a href="#" class="bid-btn">Bid</a> </div> |
А у Вас точно есть 6 подходящих под паттерн строк в this.html? this.html, на котором падает, в студию!
|
добавил
|
Часовой пояс GMT +3, время: 03:40. |