Visualizzazione dei risultati da 1 a 3 su 3

Discussione: troncare urls lunghi

  1. #1

    troncare urls lunghi

    ciao, mi sono arenato su un problema di gestione degli urls lunghi sul mio forum.

    vorrei realizzare in javascript questo:
    codice:
    [ url="http://www.google.it"]stringadecisamentetroppolunga e magari contenente spazi o c@r@tt3r| alfanumerici e speciali[ /url]
    
    >>
    
    [ url="http://www.google.it"]stringadec...iali[ /url]
    ________________________

    (gli spazi in [ url ] sono voluti, sennò non riesco a postare correttamente l'esempio).
    ho realizzato questo script, ma mi sostituisce il testo linkato con i puntini: io invece vorrei che rimanesse l'inizio e la fine della stringa.

    codice:
    function urlung() {
    
    miotesto = document.getElementById("testo").value;
    miotesto = miotesto.toString();
    re = /\].*[\/http://\]/gi;<br />
    miotesto = miot...lace(re, "]...");
    
    document.getElementById("prova").innerHTML = miotesto;
    
    }
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    codice:
    function urlung() {
      miotesto = document.getElementById("testo").value;
      //miotesto = miotesto.toString();
      miotesto = miotesto.replace(/(\].{5}).+(.{3}\[\/url\])/gi, "$1...$2");
    
      document.getElementById("prova").innerHTML = miotesto;
    }
    Ho usato 5 caratteri prima dei puntini e 3 dopo (ma puoi cambiarli).
    All'interno ho usato .+ , nel senso che non puo` essere zero caratteri: deve essere almeno uno (oltre ai 5 e 3)
    Naturalmente se la stringa e` piu' corta di 5+1+3 caratteri non viene sostituita.

    Se dovessi farlo io, metterei dentro le tonde tutta la quadra della stringa in input:
    /(\[url\s?=\s?([\"\'])\s?[\w\/\:\.]+\2\].{5}).+(.{3}\[\/url\])/gi

    Il \2 sta per quanto contenuto nella seconda parentesi (in questo caso " o ')

    Nota che c'e` un \ seguito da ' : il forum taglia qualcosa, quindi fai un "quote" prima del copia-incolla.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Originariamente inviato da Mich_
    codice:
    function urlung() {
      miotesto = document.getElementById("testo").value;
      //miotesto = miotesto.toString();
      miotesto = miotesto.replace(/(\].{5}).+(.{3}\[\/url\])/gi, "$1...$2");
    
      document.getElementById("prova").innerHTML = miotesto;
    }
    Ho usato 5 caratteri prima dei puntini e 3 dopo (ma puoi cambiarli).
    All'interno ho usato .+ , nel senso che non puo` essere zero caratteri: deve essere almeno uno (oltre ai 5 e 3)
    Naturalmente se la stringa e` piu' corta di 5+1+3 caratteri non viene sostituita.

    Se dovessi farlo io, metterei dentro le tonde tutta la quadra della stringa in input:
    /(\[url\s?=\s?([\"\'])\s?[\w\/\:\.]+\2\].{5}).+(.{3}\[\/url\])/gi

    Il \2 sta per quanto contenuto nella seconda parentesi (in questo caso " o ')

    Nota che c'e` un \ seguito da ' : il forum taglia qualcosa, quindi fai un "quote" prima del copia-incolla.
    grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.