Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Jan 2006
    Messaggi
    100

    Funzione per eliminare tag html da una stringa

    per un'applicazione web sto usando un editor wysiwyg (fckeditor) per gestire alcuni testi
    l'editor supporta il copia/incolla da word, solo che word assieme al testo incolla una serie di porcate assurde
    ho fatto quindi una serie di funzioni che filtrano il contenuto prima di inserirlo

    ne ho fatto una che elimina in toto alcuni tag con tutto il loro contenuto (la uso per i tag xml)

    codice:
    Function elimina_tag(stringa_html, tag)
    '<tag>qualcosa</tag>
    	
    	dim et_temp, et_left, et_right, et_pos_left, et_pos_right
    	
    	et_temp = CStr(stringa_html)
    	If et_temp <> "" Then
    	et_pos_left = InStr(1, et_temp, "<" & tag, 1)
    	et_pos_right = InStr(Len("<" & tag & ">"), et_temp, tag & ">", 1)
    	End If
    	If et_pos_left <> 0 Then
    	'se trova il tag
    		'prende la parte a sinistra del tag
    		If et_pos_left > 1 Then
    			et_left = Left(et_temp, et_pos_left - 1)
    		Else
    			et_left = ""
    		End If
    		
    		'e la parte a destra
    		If et_pos_right < Len(et_temp) Then
    			et_right = Right(et_temp, et_pos_right + Len(tag & ">"))
    		Else
    			et_right = ""
    		End If
    		
    		'unisce le due parti
    		elimina_tag = et_left & et_right
    		
    	Else
    		elimina_tag = stringa_html
    	End If
    	
    End Function
    se la uso con qualcosa di statico tipo
    codice:
    response.write(elimina_tag("ciao<xml>123456789</xml>ciao", "xml"))
    funziona benissimo, e mi stampa ciaociao

    se però invio dati più complessi da un form mi taglia un sacco di testo con un criterio che non ho ancora capito, anche roba fuori dai tag

    cos'è che mi sfugge?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questo è un lavoro per le espressioni regolari.
    Fai una ricerca per trovare il giusto pattern.

    Roby

  3. #3
    Utente bannato
    Registrato dal
    Jan 2006
    Messaggi
    100
    sono molto a zero con le regular expression
    pensavo che una cosa così semplice fosse fattibile con una funzione ricorsiva

    ma in ogni caso perchè funziona male?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.