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

    [ASP] Link con regular expressions (solo per gente che ne sa troppo!!!)

    VVoVe: VVoVe:

    Io e il mio collega stiamo realizzando un piccolo editor per un'applicazione web. L'obiettivo di questa è di eliminare la difficoltà propria del linguaggio html sostituendo i tag di questo con altri tag semplificati molto più intuitivi per l'utilizzatore.

    Dopo diversi tentativi, abbiamo realizzato che il modo migliore per far fronte a ciò che ci veniva chiesto era quello di ricorrere alle regular expressions.

    Tutto abbastanza bene per i tag più semplici, vale a dire il
    e i vari tag di formattazione testo.

    I problemi sono sorti con il tag <a href="...">. All'atto di sostituire questo abbiamo ottenuto, con il nostro codice, il risultato di veder visualizzato come link qualsiasi indirizzo internet che:

    - non abbia sottolivelli
    - abbia sottolivelli il cui nome è composto da caratteri ESCLUSIVAMENTE alfabetici
    - il primo sottolivello contenga qualsiasi genere di carattere

    è di conseguenza immediato capire come i sottolivelli che seguono, se numerici o comunque contenenti caratteri non alfabetici, non funzionino come invece accade per quelli di sopra. Per "non funzionare" si intende che, invece del tag html decodificabile dal browser compare a video la nostra sintassi, che noi vorremmo rimpiazzata.

    In parole povere vorremmo avere un risultato identico a quello che in questo forum è ottenibile con i tag (url) e (/url) tra parentesi quadre.

    Vi posto il codice delle regular expressions elaborate. Cosa manca, o cosa c'è di sbagliato?

    **********

    objRegExp.Pattern = "\[link=([a-z0-9._-]{1,100})+\.([a-z0-9._-]{1,100})+\.([a-z]{2,4})+(/*([a-z0-9._-]{1,100})*(.([a-z]{2,5}))*)?(,stesso)\]"
    argStrText = objRegExp.Replace(argStrText, "<a href=""http://$1.$2.$3$4"" target=_self>")

    objRegExp.Pattern = "\[link=([a-z0-9._-]{1,100})+\.([a-z0-9._-]{1,100})+\.([a-z]{2,4})+(/*([a-z0-9._-]{1,100})*(.([a-z]{2,5}))*)?(,nuovo)\]"
    argStrText = objRegExp.Replace(argStrText, "<a href=""http://$1.$2.$3$4"" target=_blank>")


    objRegExp.Pattern = "\[\/link\]"
    argStrText = objRegExp.Replace(argStrText, "</a>")

    ************

    Perché la mia applicazione smetta di funzionare, basta applicare stringhe simili.

    1) [link=www.undominio.org/prova/2000.it,nuovo]Ciao[/link]
    2) [link=www.undominio.org/1000/2000.it,nuovo]Ciao[/link]
    3) [link=www.undominio.org/prova/1000/unapagina.it,nuovo]Ciao[/link]
    4) [link=www.undominio.org/1000/sub/2000.it,nuovo]Ciao[/link]
    5) [link=www.undominio.org/sub1/2000/sub2/unapagina.it,nuovo]Ciao[/link]
    e anche

    6) 4) [link=www.undominio.org/aaa/a/a/unapagina.it,nuovo]Ciao[/link]

    cioè i sottolivelli composti da un solo carattere.

    Stiamo impazzendo, aiutateci!

    :master:

  2. #2

    Come perdersi in un bicchier d'acqua...

    Era sufficiente aggiungere questo!

    objRegExp.Pattern = "\[link=([a-z0-9._-]{1,100})+\.([a-z0-9._-]{1,100})+\.([a-z]{2,4})+(/*([a-z0-9._-]{1,100})*(.([a-z]{2,50-9._-}))*)?(,stesso)\]"
    argStrText = objRegExp.Replace(argStrText, "<a href=""http://$1.$2.$3$4"" target=_self>")

    objRegExp.Pattern = "\[link=([a-z0-9._-]{1,100})+\.([a-z0-9._-]{1,100})+\.([a-z]{2,4})+(/*([a-z0-9._-]{1,100})*(.([a-z0-9._- ]{2,5}))*)?(,nuovo)\]"
    argStrText = objRegExp.Replace(argStrText, "<a href=""http://$1.$2.$3$4"" target=_blank>")


    objRegExp.Pattern = "\[\/link\]"
    argStrText = objRegExp.Replace(argStrText, "</a>")


    roba da rimanere scioccati!

  3. #3

    ERRATA CORRIGE

    Ho digitato la prima stringa in rosso in posizione sbagliata. Ora è giusta.

    objRegExp.Pattern = "\[link=([a-z0-9._-]{1,100})+\.([a-z0-9._-]{1,100})+\.([a-z]{2,4})+(/*([a-z0-9._-]{1,100})*(.([a-z0-9._-]{2,5}))*)?(,stesso)\]"
    argStrText = objRegExp.Replace(argStrText, "<a href=""http://$1.$2.$3$4"" target=_self>")

    objRegExp.Pattern = "\[link=([a-z0-9._-]{1,100})+\.([a-z0-9._-]{1,100})+\.([a-z]{2,4})+(/*([a-z0-9._-]{1,100})*(.([a-z0-9._- ]{2,5}))*)?(,nuovo)\]"
    argStrText = objRegExp.Replace(argStrText, "<a href=""http://$1.$2.$3$4"" target=_blank>")


    objRegExp.Pattern = "\[\/link\]"
    argStrText = objRegExp.Replace(argStrText, "</a>")

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.