Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Regex url to link

  1. #1

    Regex url to link

    Buongiorno a tutti.
    Sembrerà una richiesta banale, ma qualcuno potrebbe aiutarmi a sistemare questa regex??

    Praticamente devo trasformare tutti tutti gli url che trovo nel testo in link...e riesco a farlo, il problema è che facendolo più volte mi ritrasforma già quelli modificati....

    Quindi dovrei eliminare dalla sostituzione quelli già sostituiti....qualche dritta o aiuto??

    Grazie mille ciao!!


    codice:
    var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$).([\S]+(\b|$)))/gim; 
    var replacedText = inputText.replace(replacePattern2, '$1$2');
    P.S.
    Il metodo che fa il replace l'ho inserito in un evento keyup della casella, ma dopo che inserisco un link, viene trasformato e qualcosa non va, mi scrive al contrario

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, è normale devi filtrare il testo da tramutare tipo
    if(inputText.indexOf('<a href="http://')==-1){replace..} non l'ho testato, ma credo che questa sia la strada percorrere
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Grazie.

    Scusami ma non ho capito.

    Dove dovrei fare questo controllo?
    Dovrei inserire una funzione nel replace del tipo....

    codice:
    inputText.replace(replacePattern2, 
                             function(){
                                     if(inputText.indexOf('<a href="http://')==-1){replace..}
    
                                           }
    );
    Non mi quadra funzionalmente .....

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    metti un link alla pagina pubblica online, forse vendo cosa stai facendo si trova una soluzione.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Non c'è una pagina pubblica ma ti spiego....

    Sto facendo una specie di editor....
    Ho un frame con designMode=on

    Mentre scrivo devo controllare se è stato inserito nel testo una url....
    Se la trovo la devo trasformare in link...

    Diciamo che ci riesco con quella funzione che applica quel regex, ma la prima volta che trova una url, la trasforma in link appena scrivo un altra lettera ovviamente facendo nuovamente il controllo, ritrova quell'url all'interno del link e trafroma sia href che il testo in un nuovo link...quindi mi ritrovo un link dentro al link, che sballa un po tutto....

    Quindi ricapitolando ho questo testo
    -----------------------------------------------
    Ciao vieni sul mio sito www.google.it ciao
    -----------------------------------------------
    Quando appena do lo spazio dopo ...it ho bisogno di trasformare quell'url in link...ed è ok
    Però appena scrivo la c di ciao, riparte il controllo sul testo è succede che...

    primo controllo
    www.google.it -> www.google.it

    successivi controlli
    www.google.it

    ->

    www.google.it">www.google.it</a>


    Capito il problema??
    Ora dovrei far capire al regex di non trasformare i link già formattati, cioè non dovrebbe cercare in mezzo a i tags praticamente.


    Quindi in totale ho un

    codice:
    testo.addEventListener('keyup',controllaTesto(this));
    
    function controllaTesto(testo){
    		var rPattern = /(^|[^\/])(www\.[\S]+(\b|$).([\S]+(\b|$)))/gim;	
                    testo = testo.replace(rPattern, '$1$2');
    }
    Se lo metto sull'evento focusout funziona, ma c'è il problema del link al link...
    Se lo metto sull'evento keyup praticamente funziona ma poi mi da il cursore all'inizio e mi scrive al contrario

    Spero di essere stato chiaro....grazie mille ciao!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io ho provato la funzione http://webandylab.altervista.org/ajax/url.php e funziona regolarmente, il problema potrebbe essere che la usi in un frame con designMode=on e non saprei... bisognerebbe studiarci sopra eseguire di test etc..., valuta se non conviene scaricarsi un editor già pronto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    L'iframe è necessario per applicare gli effetti, compreso il linkaggio....

    Comunque grazie del supporto

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.