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.