MICHELEPISANI.IT

Funzioni per le stringhe in ASP

ASP - Sostituisce una stringa dentro un'altra, sensitive / insensitive

Replace()

June 13
07:062014

La funzione Replace() in ASP ha lo scopo di trovare e sostituire una stringa all'interno di un'altra. C'è la possibilità di fornire alla funzione dei parametri opzionali aggiuntivi al fine di indicare la posizione di partenza da cui inziare la sostituzione, il numero limite di sostituzioni da effettuare e se rispettare la regola del case sensitive o eseguire un replace più grezzo.

La sintassi della funzione Replace() è la seguente:

<%
Replace(stringa_di_origine, stringa_da_trovare, stringa_da_sostituire, start, count, comparetype) 
%>


Un esempio di utilizzo della funzione Replace() senza l'impiego dei parametri aggiuntivi e quindi applicata a tutta la stringa per ogni occorrenza ed indipendentemente da caratteri minuscoli o maiuscoli è il seguente:

<%
Dim stringa_di_origine,stringa_da_trovare,stringa_da_sostituire
stringa_di_origine="Benvenuto nella sezione ASP relativa alle guide asp, che ti aspettavi?"
stringa_da_trovare= "ASP"
stringa_da_sostituire="VBScript"
Response.Write Replace(stringa_di_origine,stringa_da_trovare,stringa_da_sostituire)
%>


E questo il risultato dell'output:

Benvenuto nella sezione VBScript relativa alle guide asp, che ti aspettavi?


Nell'esempio appena mostrato sono stati utilizzati i 3 parametri principali necessari per l'utilizzo della funzione Replace(), ossia la stringa di origine, quella da cercare al suo interno e quella con la quale sostituire ogni sua occorrenza. Vediamo adesso un esempio con l'utilizzo dei parametri opzionali che prevedono l'aggiunta di altre tre variabili: start, count e comparetype.

Il parametro start indica la posizione del carattere della stringa dalla quale iniziare ad effettuare le sostituzioni, restituendo la stringa a partire da quel carattere.
Il parametro count, come intuibile, indica il numero di occorrenze da sostituire all'interno della stringa partendo dalla posizione del carattere nella stringa fornito da start.
Il parametro comparetype è invece quello che tramite un confronto di tipo binario distingue una sostituzione attenta al case sensitive da una che non distingue tra maiuscole e minuscole (di default è impostato a 0, ossia case sensitive).

Per fare un esempio pratico, prendendo sempre in considerazione le variabili dell'esempio precedente, possiamo fare in modo che la funzione non tenga conto delle maiuscole e delle minuscole:

<%
Replace(stringa_di_origine, stringa_da_trovare, stringa_da_sostituire, 1, 2, 1) 
%>


I parametri aggiunti, per l'esempio in questione, indicano alla funzione di partire la sostituzione dal primo carattere della stringa, sostituire 2 occorrenze e non considerare le maiuscole e le minuscole.
Il risultato:

Benvenuto nella sezione VBScript relativa alle guide VBScript, che ti aspettavi?


Attenzione: se in quest'ultimo esempio, avendo impostato il parametro comparetype a 1 avessi impostato un numero di sostituzioni maggiore di 2 (quindi il count a 3), proprio in virtù del fatto che la funzione è stata resa insensitive avrei avuto un risultato molto probalmente non voluto:

Benvenuto nella sezione VBScript relativa alle guide VBScript, che ti VBScriptettavi?


Ovvero la funzione ha sostituito tutte le occorenze della stringa 'asp' (maiuscole o minuscole) e pertanto ha sostituito anche tale occorrenza all'interno della parola 'aspettavi'.

Questo è un errore che può capitare soprattutto per distrazione e che all'interno di un contesto più ampio potrebbe non essere subito individuato comportando poi maggiori difficoltà di ripristino della stringa originale in caso di salvataggi successivi.

Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

0 Commenti

Non ci sono commenti

Nessuno ha ancora commentato questo articolo, fallo tu per primo!

Scrivi un Commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …