Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Como marcar uma palavra no site sem que ela esteja entre/d


matheus.labanca

Question

Boa tarde.

Estou fazendo uma funcao que te de pegar o texto em uma div e encontrar nele algumas palavras chaves e colocar um link. Essas palavras não podem estar dentro de uma tag html e nem entre elas. Ex: quero marcar a palavra dia mas essas aqui não poderiam ser marcadas

<a href='http://www.globo.com'> dia </a>

<img src="img/dia.jpg" id="dia">

Mas não está dando muito certo, e eu não tenho tanta experiência em regexp.

alguém pode dar uma ajuda.

segue o cod:

window.onload = function() {

var palavras_chave = ["Jogador", "dia", "torcida", "matheus", "futebol"];

encontra_palavras(pega_texto_div(),palavras_chave) ;

}

//PEGA O CONTEÚDO DE UMA DIV

function pega_texto_div() {

//recupera o texto da div

var texto = document.getElementById( "texto_spider" ).innerHTML;

return texto

}

//SUBISTITUI AS PALAVRAS CHAVE POR UM LINK

function encontra_palavras(conteudo_div,lista_palavras) {

for( var i = 0; i < lista_palavras.length; i++) {

var reg = new RegExp( "([A-Za-z0-9\.\,\-\s\?\!\;\:\(\)][^A-Za-z0-9\/\<\>])("+ lista_palavras +")([^A-Za-z0-9\/\<\>][A-Za-z0-9\.\,\-\s\?\!\;\:\(\)])", "i" ); // expressão regular que acha as palavras

conteudo_div = conteudo_div.replace( reg, "$1<a href='http://www.google.com.br'>$2</a>$3" ); //troca o texto da página para o texto com o link

}

document.getElementById( "texto_spider" ).innerHTML = conteudo_div; //insere o texto novamente

}

Obrigado por enquanto

Edited by matheus.labanca
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Se você quiser selecionar somente palavras inteiras coloque desse jeito

var reg = new RegExp("(.?)( )("+ lista_palavras[i] +")( )(.?)", "gi");
conteudo_div = conteudo_div.replace( reg, "$1$2<a href='http://www.google.com.br'>$3</a>$4$5" );
Se quizer dividir palavras <a href="...">dia</a>s por exemplo
var reg = new RegExp("(.?)("+ lista_palavras[i] +")(.?)", "gi"); 
conteudo_div = conteudo_div.replace( reg, "$1<a href='http://www.google.com.br'>$2</a>$3" );

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...