Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2012, 22:14   #11
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

В данном случае я всё-таки обошёлся регуляркой. Я просто искал по цифрам, точке и знаку >. Ведь именно такое сочетание в строке одно, значит, его можно выцепить.
Спасибо.
Но как раз поэтому я их и не люблю, потому что возникают такие вот вещи, и пока не прочтёшь руководство, где абсолютно всё разжевано и не перепробуешь 100 раз, вряд ли будет удовольствие от них...
motorway вне форума Ответить с цитированием
Старый 28.02.2012, 11:14   #12
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

WennY, можете еще раз задачу сформулировать [более четко]? Что требуется найти?
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 28.02.2012, 11:46   #13
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

Код:
<script>
var td = '<td class="Bold nowrap" align="right"><a href="/system/id?1" title="Экспресс-выписка">1000.00</a>';

var r = td.match(/<td class="Bold nowrap" align="right">.*?>(.*?)<\/a>/gi);

alert(r[0]);
</script>
Тут я пытаюсь по моему условию (оно важно) выделить цифры баланса (в моем случае это 1000.00) и сохранить их. После чего я вывожу: r[0] или r[1]. Выводит только целиком строку, моего вроде как сохраненного вхождения ((.*?)) - нету. Не сохраняет. Я хочу понять, что не так в моей реализации шаблона регулярки, где накосячил. Спс

Последний раз редактировалось WennY; 28.02.2012 в 12:04.
WennY вне форума Ответить с цитированием
Старый 28.02.2012, 12:11   #14
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

могу предложить такой вариант
Код:
var x = '<td class="Bold nowrap" align="right"><a href="/system/id?1" title="Экспресс-выписка">1000.00</a>';
var z = /[.\d]+(?=<\/a>)/i;

alert( z.exec( x ) );
Тишина – самый громкий звук

Последний раз редактировалось nerv; 28.02.2012 в 12:15.
nerv вне форума Ответить с цитированием
Старый 28.02.2012, 12:38   #15
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

Код:
var x = '<td class="Bold nowrap" align="right"><a href="/system/id?1" title="Экспресс-выписка">1000.00</a>';
var z = /<td class=.*?>[.\d]+(?=<\/a>)/i;

alert( z.exec( x ) );
Из той же оперы Повторюсь в пятый раз: мое условие (т.е. <td class="Bold nowrap" align="right">.*?>) - ВАЖНО. Это в топике я Вам дал для примера одну строку, повторив несколько раз, что мое первичное условие нельзя ничем заменять ибо оно выполняет идентифицирующую задачу, наивно полагая, что меня кто-то услышит... Хорошо, пуступим иначе, выложим полный вариант, а то я с ума нафиг сойду:
Код:
	<tr>
		<td style="width: 45px"></td>
		<td class="Bold"><a href="Account.aspx?accountid=3095280&amp;systemid=ssIrbis" title='информация по счету и выписки'>Текущий</a><br/><small class="Gray" style="font-weight:normal">основной</small></td>
		<td class="number nowrap">2000.0</td>
		<td class="Bold nowrap" align="right"><a href="/WebNew/Accounts/Status.aspx?fast=1&amp;accountid=3095280&amp;systemid=ssIrbis" title='Экспресс-выписка'>1000.00</td>
		<td class="Bold">RUR</td>
	</tr>
Все ещё надеюсь быть услышенным..

Последний раз редактировалось WennY; 28.02.2012 в 12:49.
WennY вне форума Ответить с цитированием
Старый 28.02.2012, 12:56   #16
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

В любом случае спасибо Вам за ваши варианты решения проблемы, их тоже можно адаптировать под мой пример, но на самом деле я уже просто хочу понять, почему не работает мое выражение, оно не может быть не рабочим. Почему не сохраняет? Мне интересно уже больше в образовательных целях, я реплейсом давно решил мою задачу, но Вы мне все наровите воткнуть свой вариант, который, несомненно, работает, но не объясняет, почему на эту роль не сгодился изначальный, т.е. мой вариант. Спс

Последний раз редактировалось WennY; 28.02.2012 в 12:58.
WennY вне форума Ответить с цитированием
Старый 28.02.2012, 14:34   #17
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

WennY, вообще-то так не делают.

Код:
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">  
 </head>

 <body>
 
  <table>
   <tr>
    <td style="width: 45px"></td>
    <td class="Bold"><a href="Account.aspx?accountid=3095280&amp;systemid=ssIrbis" title='информация по счету и выписки'>Текущий</a><br/><small class="Gray" style="font-weight:normal">основной</small></td>
    <td class="number nowrap">2000.0</td>
    <td class="Bold nowrap" align="right"><a href="/WebNew/Accounts/Status.aspx?fast=1&amp;accountid=3095280&amp;systemid=ssIrbis" title='Экспресс-выписка'>1000.00</a></td>
    <td class="Bold">RUR</td>
   </tr>
  </table>
 
  <script>
   (function() {
    var elems = document.getElementsByTagName( 'td' ), i = elems.length, re = /[.\d]+(?=<\/a>)/i;
    while( --i >= 0 ) {
     if ( elems[ i ].className === 'Bold nowrap' ) {
      alert( re.exec( elems[ i ].innerHTML ) );
     }
    }
   })();
  </script>

 </body>
</html>
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 28.02.2012, 16:16   #18
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

А вы можете пояснить своими словами, каким образом вы пытаетесь составить регулярку? Каким образом вы ищете нужное число? Может, тогда и станет понятно, почему не работает?
motorway вне форума Ответить с цитированием
Старый 28.02.2012, 18:45   #19
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

nerv, все же никто меня не услышал, печально...

motorway, самый первый пост не поленитесь прочесть Там все подробно изложено, с примерами и реализацией. Если Вы настолько не разбираетесь в регулярных выражениях, что Вам нужно разжевывать каждую инструкцию, то я затрудняюсь определить смысл Вашего пребывания в этом топике.

Может я выражаюсь как-то не так, может сообщения мои слишком мелким шрифтом отображаются на экране тут отсписывающихся, но - по судя по всему - шансов получить ответ на вопрос "что я сделал не так в моем выражении, а не в способе реализации и методе получения нужного куска кода", видно, ничтожно мало.. Может, во мне что-то, может, мои сообщения решили просто тупо не читать, но суть не меняется. Поэтому, вопрос с повестки снимаю. Не вижу смысла тратить свое и чужое время. Спасибо всем не равнодушным, но немножко не внимательным "советерам". Благодарю за внимание

Последний раз редактировалось WennY; 28.02.2012 в 19:03.
WennY вне форума Ответить с цитированием
Старый 28.02.2012, 19:36   #20
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Собственно, почему неправильно - может быть тоже много толкований, так как составляя код, вы могли иметь в виду много способов, предполагая, что они будут работать.
Я хоть и не занимался регулярками сильно, но просто за счёт общего опыта и частой встречи с этой темой примерно представлял уже, что они из себя представляют. В частности, насколько я понимаю, если в шаблон у вас вставлено
Код:
<td class="Bold nowrap" align="right">
, то это и появится в результате. Ведь ищутся совпадения с шаблоном. Почему вы тогда ожидаете, что там этого не будет?
В общем, это мне так кажется, что проблема в этом. Может, есть профессионалы в них, которые сразу видят, что тут не так, но на первый взгляд именно это
motorway вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чет не получается c Case of... Володян Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2011 21:45
Чет не получается c Case of... Володян Помощь студентам 4 18.05.2011 21:06
Вектор. чет/нечет+фибоначи Март Помощь студентам 1 20.11.2010 17:50
чет\нечет Михаил2261 Microsoft Office Excel 10 30.06.2010 16:26