Cortando uma string nos primeiros “N” caracteres – JavaScript com Expressão Regular
Vou usar expressão regular com javascript, para mostrar como cortar uma string nos “N” primeiros caracteres.
Eu poderia usar a função .substr(), mas ai não teria graça.. hehe
Fiz aqui rapidinho uma brincadeira para cortar uma frase nos primeiros 9 caracteres.
Fazendo a string:
<h1 id="title">Um titulo bem grande cheio de palavras esquisitas</h1>
Ser mostrada apenas como:
<h1 id="title">Um titulo...</h1>
E ao clicar, mostra a frase completa. Alternando cada clique, mostrando truncado e mostrando completo.
<html>
<head>
<meta charset="utf8" />
<script type="text/javascript">
function id( el ){
return document.getElementById( el );
}
String.prototype.truncate = function( max ){
var er = new RegExp( "(^[\\w\\s]{"+max+"})(.*)$" );
return this.replace( er,'$1' );
}
window.onload = function(){
var $t = id('title');
var strtitle = $t.innerHTML;
$t.title = strtitle;
$t.innerHTML = strtitle.truncate( 9 )+'...';
$t.onclick = function(){
this.innerHTML = this.innerHTML.length==12 ? this.title : this.title.truncate( 9 )+'...';
}
}
</script>
<style type="text/css">
#title { cursor: pointer; }
</style>
</head>
<body>
<h1 id="title">Um titulo bem grande cheio de palavras esquisitas</h1>
</body>
</html>
Note que fiz 2 grupos na expressão regular. O primeiro grupo casa os “N” primeiros caracteres(letras simbolos e espaços \w\s), e o segundo grupo casa tudo oque vier depois(.*), em qualquer quantidade.
O replace troca tudo, pelo o que foi casado no primeiro grupo.
Dessa forma consigo o “efeito” de cortar depois dos “N” primeiros caracteres.
Caso tudo e coloco de novo os “N” primeiros.
Este post, é o primeiro exemplo prático do Expressões Regulares – REGEX para iniciantes.
O método substr()
Fiz com ReGex, o mesmo que eu conseguiria com o substr():
return this.substr( 0, max );
É isso galera. Por enquanto bem básico, mas me digam se está sendo fácil entender o que são, o tão temido mundo da expressão regular.