На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > Использовнание RegExp , помогите с применением RegExp
      Имеем вот такой кусок HTML.
      ExpandedWrap disabled
        <div id="info">
        <p>bla bla bla bla bla bla bla bla bla p>
        <p>bla bla bla bla bla bla bla bla bla </p>
        <p><a href='http://validator.w3.org/'>bla bla bla </a>bla bla bla </p>
        <p><a href='http://validator.w3.org/'>bla bla bla </a></p>
        </div>


      С помощью вот такой любительской функции
      ExpandedWrap disabled
        //--------------------
        function getInnerHTML()
        {
        var theDiv=document.getElementById('info');
        var htmlCont=theDiv.innerHTML;
        alert(htmlCont);
        }

      /-------------------------
      и её вызова onLoad <body onLoad="getInnerHTML()"> получаем в алерте
      //---------------------
      ExpandedWrap disabled
        <p>bla bla bla bla bla bla bla bla bla p>
        <p>bla bla bla bla bla bla bla bla bla </p>
        <p><a href="http://validator.w3.org/">bla bla bla </a>bla bla bla </p>
        <p><a href="http://validator.w3.org/">bla bla bla </a></p>

      //--------------------

      задача, которую никакккк не могу решить сам:

      нужно чтобы все ссылки приобрели вид [a href=^http://validator.w3.org/^]bla bla bla [/a]
      т.е. < меняем на [
      > на ]
      а " меняем на ^

      вечера который у меня был на изучене RegExp в JavaScript мне не хватило.
      самое большое что смог сделать - вырезать все пробелы и переводы строки
      ExpandedWrap disabled
        htmlCont=htmlCont.replace(/[\r\n]/g,'');


      надеюсь на помощь.
      спасибо.
      M
      alex_m, в следующий раз используй тег CODE!
      Сообщение отредактировано: Mixxx -
        Так, какие проблемы? Пиши так:
        ExpandedWrap disabled
          htmlCont = htmlCont.replace(/</g, '[');
          htmlCont = htmlCont.replace(/>/g, ']');
          htmlCont = htmlCont.replace(/\"/g, '^');

        ;)
          спасибо. спасли бедного художника.

          Добавлено
          хм-ммм
          ещё раз спасибо.
          только вот
          ExpandedWrap disabled
            //--------
            htmlCont = htmlCont.replace(/</g, '[');
            htmlCont = htmlCont.replace(/>/g, ']');
            htmlCont = htmlCont.replace(/\"/g, '^');
            //---------

          переформатировало весь блок квадратными скобками

          //-------------
          [p]bla bla bla bla bla bla bla bla bla [/p] и т.д.
          //---------------

          нужно чтобы только ссылки приобрели вид
          [a href=^http://validator.w3.org/^]bla bla bla [/a]

          есть возможность использовать шаблонов, patterns - вот это я, как художник, никак не переварю.

          т.е. нужно чтобы искалось сочетание
          <a
          и заменялось на
          [a

          "> заменялось на "]

          и т.д.

          пойду пробовать.
          или
          для вас это тоже нет проблем ;)
          Сообщение отредактировано: Mixxx -
            ExpandedWrap disabled
              var theDiv=document.getElementById('info');
              var htmlCont=theDiv.innerHTML;
               
              var links = htmlCont.getElementsByTagName("a");
               
              for (var i = 0; i < links.length; i++) {
                 links[i].innerHTML = links[i].innerHTML.replace(/</g, '[');
                 links[i].innerHTML = links[i].innerHTML.replace(/>/g, ']');
                 links[i].innerHTML = links[i].innerHTML.replace(/\"/g, '^');
              }
            Сообщение отредактировано: JavaScript -
              Ругается:
              Ошибка: links[i].replace is not a function
              :wall:
                Отредактировал пост выше, попробуй так. Но не гарантирую, голова к ночи совсем не варит ;)
                  Цитата JavaScript @
                  links[i].innerHTML = links[i].innerHTML.replace(/</g, '[');
                  links[i].innerHTML = links[i].innerHTML.replace(/>/g, ']');
                  links[i].innerHTML = links[i].innerHTML.replace(/\"/g, '^');

                  Проще так:
                  ExpandedWrap disabled
                    links[i].innerHTML = links[i].innerHTML.replace(/</g, '[').replace(/>/g, ']').replace(/\"/g, '^');
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0316 ]   [ 15 queries used ]   [ Generated: 7.05.24, 14:09 GMT ]