Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.23.127.197] |
|
Сообщ.
#1
,
|
|
|
Имеем вот такой кусок HTML.
<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> С помощью вот такой любительской функции //-------------------- function getInnerHTML() { var theDiv=document.getElementById('info'); var htmlCont=theDiv.innerHTML; alert(htmlCont); } /------------------------- и её вызова onLoad <body onLoad="getInnerHTML()"> получаем в алерте //--------------------- <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 мне не хватило. самое большое что смог сделать - вырезать все пробелы и переводы строки htmlCont=htmlCont.replace(/[\r\n]/g,''); надеюсь на помощь. спасибо. M alex_m, в следующий раз используй тег CODE! |
Сообщ.
#2
,
|
|
|
Так, какие проблемы? Пиши так:
htmlCont = htmlCont.replace(/</g, '['); htmlCont = htmlCont.replace(/>/g, ']'); htmlCont = htmlCont.replace(/\"/g, '^'); |
Сообщ.
#3
,
|
|
|
спасибо. спасли бедного художника.
Добавлено хм-ммм ещё раз спасибо. только вот //-------- 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 "> заменялось на "] и т.д. пойду пробовать. или для вас это тоже нет проблем |
Сообщ.
#4
,
|
|
|
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, '^'); } |
Сообщ.
#5
,
|
|
|
Ругается:
Ошибка: links[i].replace is not a function |
Сообщ.
#6
,
|
|
|
Отредактировал пост выше, попробуй так. Но не гарантирую, голова к ночи совсем не варит
|
Сообщ.
#7
,
|
|
|
Цитата 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, '^'); Проще так: links[i].innerHTML = links[i].innerHTML.replace(/</g, '[').replace(/>/g, ']').replace(/\"/g, '^'); |