Highlighter //Repositório JavaScript
Descrição
Procura ocorrências de uma ou mais strings no texto e chama um callback para efetuar a troca.
Criado: 2006.01.13
Criado: 2006.01.13
Código (Download)
//+ Carlos R. L. Rodrigues
//@ http://jsfromhell.com/string/highlight [rev. #1]
String.prototype.highlight = function(f, c, i){
var r = this, t = /([(){}|*+?.,^$\[\]\\])/g, i = !i ? "i" : "", rf = function(t, i){
return r.lastIndexOf("<", i) > r.lastIndexOf(">", i) ? t : c(t, p);
};
for(var p = -1, l = (f = f instanceof Array ? f : [f]).length; ++p < l;)
r = r.replace(new RegExp(f[p].replace(t, "\\\$1"), "gm" + i), rf);
return r;
}
Exemplo (Exemplo)
<style type="text/css">
body{
margin: 3px;
}
.bg0{
color: #fff;
font: bold 30px verdana;
border: 1px solid #000;
background: #f00;
}
.bg1{
color: #0f0;
background: #000;
font-weight: bold;
}
.bg2{
color: #00F;
background: #FF0;
font-weight: bold;
}
.bg3{
color: #000;
background: #eee;
font-weight: bold;
}
</style>
<script type="text/javascript">
function c(s, i){
return '<span class="bg' + i + '">' + s + '</span>';
}
var s = 'blabla <a href="http://jsfromhell.com">JSFromHell</a>';
document.write(s.highlight(["JS", "from", "o", "l"], c));
</script>
Ajuda
- words
- palavras que serão procuradas
- replaceCallback
- função que será chamada para cada ocorrência que for encontrada, recebe como primeiro parâmetro a palavra que foi encontrada, como segundo o índice dela na array que foi setada no parâmetro "words" e deve retornar uma string que será colocada no lugar da palavra encontrada
- caseSensitive
- indica se a busca deverá ser case-sensitive
Ranque (Votos: 13)
3.92