Gostaria de truncar uma string carregada dinamicamente usando JavaScript direto. É um URL, portanto não há espaços e, obviamente, não me importo com limites de palavras, apenas caracteres.
Aqui está o que eu tenho:
var pathname = document.referrer; //wont work if accessing file:// paths
document.getElementById("foo").innerHTML = "<a href='" + pathname +"'>" + pathname +"</a>"
javascript
truncate
Prumo
fonte
fonte
Respostas:
Use o método de substring :
Então, no seu caso:
fonte
length
- retorna esvaziar.toString().
para convertê-la em uma string quesubstring()
possa manipular.sim, substring. Você não precisa fazer um Math.min; substring com um índice maior que o comprimento da string termina no comprimento original.
Mas!
Isto é um erro. E se document.referrer tivesse um apóstrofo? Ou vários outros caracteres que têm um significado especial em HTML. Na pior das hipóteses, o código do invasor no referenciador pode injetar JavaScript na sua página, que é uma falha de segurança XSS.
Embora seja possível escapar manualmente dos personagens no nome do caminho para impedir que isso aconteça, é um pouco trabalhoso. É melhor usar métodos DOM do que mexer com strings innerHTML.
fonte
Pensei em dar Sugar.js mencionar o . Ele tem um método truncado que é bastante inteligente.
A partir da documentação :
Exemplo:
Resultado:
fonte
Sugar is a Javascript library that extends native objects
… A extensão de objetos nativos em JavaScript é geralmente considerada uma Bad Idea ™.O código a seguir trunca uma seqüência de caracteres e não dividirá as palavras; em vez disso, descarte a palavra onde ocorreu o truncamento. Totalmente baseado na fonte Sugar.js.
fonte
Aqui está um método que você pode usar. Esta é a resposta para um dos desafios do FreeCodeCamp:
fonte
Versão ES6 atualizada
fonte
Sim,
substring
funciona muito bem:fonte
caso você queira truncar por palavra.
fonte
fonte