Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Rimuovere spazi doppi

  1. #1

    Rimuovere spazi doppi

    Ciao a tutti,
    tempo fa avevo trovato una regexp che rimuoveva tutti gli spazi doppi superflui, tipo:

    codice:
    "ciao    pippo  come stai  ?" 
    Diventava
    "ciao pippo come stai ?"
    Qualcuno ce l'ha sotto mano e puo darmi una mano?

    Grazie mille!

  2. #2
    Rimpiazza due spazi con uno spazio.

  3. #3
    Non è la stessa cosa...

    Se ci sono tre spazi ne diventano 2...

  4. #4
    E te fai una funzione che chiama se stessa fino a quando gli spazi doppi non esistono più.
    codice:
    <%
    testo = "ciao    sono      topolino  e c'ho il        naso nero!!!"
    
    function rimuoviSpaziInutili(stringa)
    stringa = replace(stringa,"  "," ")
    if inStr(stringa,"  ") > 0 then call rimuoviSpaziInutili(stringa)
    rimuoviSpaziInutili = stringa
    end function
    
    testo = rimuoviSpaziInutili(testo)
    response.write testo
    %>

  5. #5
    Eheh... grazie mille!!!


    Avevo in mente quella regexp che non avevo neanche preso in considerazione metodi tradizionali!!

    Grazie ancora!

  6. #6
    se vuoi usare le regexp puoi provare questa:
    codice:
    Function RiduciSpazi(str)
    	Dim re
    	Set re = New RegExp 
    	
    	With re
    		.Pattern = "(\s){2,}"
    		.IgnoreCase = True
    		.Global = True
    		
    		RiduciSpazi = re.Replace(str, " ")
    	End With
    
    	Set re = nothing
    End Function
    xxx

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Originariamente inviato da maxolino
    Eheh... grazie mille!!!


    Avevo in mente quella regexp che non avevo neanche preso in considerazione metodi tradizionali!!

    Grazie ancora!
    perché usare metodi "tradizionali" quando ci sono le regular expressions che sono fatte apposta?
    con la funzione di Alethesnake sostituisci tutti gli spazi vuoti da 2 in su (compresi gli spazi, i ritorni a capo, le tabulazioni)
    se vuoi eliminare solo gli spazi
    codice:
    Function RiduciSpazi(str)
    	Dim re
    	Set re = New RegExp 
    	re.Pattern = " {2,}"
    	re.Global = True
    	RiduciSpazi = re.Replace(str, " ")
    	Set re = nothing
    End Function

  8. #8
    Grazie mille!!!

    Me la potresti anche spiegare riga per riga


    Sono troppo indietro con le regexp

  9. #9
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    beh... qua c'è poco da spiegare
    codice:
    Function RiduciSpazi(str)
    	Dim re
    	Set re = New RegExp 'creo l'oggetto RegExp
    	re.Pattern = " {2,}" 'imposto il pattern 
    	re.Global = True 'dico che è globale
    	RiduciSpazi = re.Replace(str, " ") 'faccio il replace
    	Set re = nothing
    End Function
    il pattern " {2,}" vuol dire 2 o più sequenze del carattere precedente (in questo caso il carattere precedente è lo spazio quindi 2 o più spazzi consecutivi)

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Originariamente inviato da Alethesnake
    se vuoi usare le regexp puoi provare questa:
    codice:
    Function RiduciSpazi(str)
    	Dim re
    	Set re = New RegExp 
    	
    	With re
    		.Pattern = "(\s){2,}"
    		.IgnoreCase = True
    		.Global = True
    		
    		RiduciSpazi = re.Replace(str, " ")
    	End With
    
    	Set re = nothing
    End Function
    Ciao a tutti,
    riprendo questo thread solo perchè avrei bisogno, utilizzando la funzione sopra indicata, di togliere tutto eccetto Ritorno a Capo

    Si può fare?

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.