Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Escludere simboli da espressione regolare

    Ciao a tutti, avrei bisogno di escludere dalla seguente espressione regolare (che valida un link) i simboli + & @ # % #

    Vorrei in pratica che l'espressione:
    - accetti esclusivamente gli slash e i due punti (esempio http://www.google.it/)
    - richieda lo slash alla fine del link

    Per l'esclusione so di dover usare qualcosa del genere [^+&@#%#] ma non ne sono sicuro..

    codice:
    /\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;][^a-z]*[-a-z0-9+&@#\/%=~_|]/i
    come fare? grazie

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, dovresti definire meglio la tua richiesta. Senza offesa, ma credo che tu abbia poche idee e molto confuse.

    + & @ # % #
    Perché il cancelletto è ripetuto? C'è un qualche motivo?

    accetti esclusivamente gli slash e i due punti (esempio http://www.google.it/)
    Nella stringa d'esempio non ci sono solo slash e due punti. Io vedo anche caratteri letterali e il carattere . (punto).

    Quindi mi chiedo: Per "i due punti" a cosa mai avrà voluto riferirsi? Il carattere : (due punti) dopo http, oppure la serie di due caratteri . (punto) prima e dopo "google"?

    Certo, immagino che partendo dall'espressione già fatta vuoi solo escludere i caratteri che hai indicato, ma le tue precisazioni suscitano ambiguità.

    Per l'esclusione so di dover usare qualcosa del genere [^+&@#%#]
    In genere sì, a parte che il cancelletto ripetuto non ha molto senso. Però nell'espressione che hai postato dovrai prima di tutto eliminare in partenza tali caratteri che sono esplicitamente inclusi nel pattern.

    Ora, se dici di voler semplicemente escludere tali caratteri, significa che tutti gli altri caratteri sono da considerarsi (a prescindere dall'espressione che hai postato) oppure che bisogna partire proprio dall'espressione che hai postato. In quest'ultimo caso i caratteri -?=~_|!:,.; (contenuti comunque nel pattern) sono da considerarsi oppure no?

    Ripeto, a mio parere la richiesta è confusa. Puoi dare indicazioni più precise?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Chiedo perdono.. la fretta

    Il doppio cancelletto è un errore e il punto non deve essere escluso..

    Tornando alla richiesta, l'espressione deve accettare (validare):
    - caratteri letterali
    - numeri
    - simboli . : /

    In definitiva, un esempio di link accettato dovrebbe essere (ricordo lo slash "/" finale):
    http://www.sito.it/pagina/

    un link non accettato invece:
    http://www.sito.it/pagina.php?id=1&var=2#paragrafo

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ok, già meglio.

    Ti chiedo però se la stringa da esaminare è determinata dal singolo url (cioè può contenere solo quello), oppure gli url da esaminare possono essere più di uno all'interno di un testo indefinito?

    Nel primo caso puoi provare ad usare una cosa del genere:
    codice:
    /^(?:(?:https?|ftp):\/\/|www\.)[a-z0-9\.\/:]+\/$/i
    E' chiaro che (come da tue indicazioni) potrebbero essere trovati anche url improbabili come:
    http://:::/
    www../
    http://www.000/

    Ovviamente per ottenere un riscontro più "realistico" possibile, dovrai definire meglio le disposizioni da considerare.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Al momento credo vada bene così.. Grazie!!

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.