Spesso può tornare utile verificare la presenza di caratteri speciali in una stringa per validare l'esecuzione di un comando.
Ad esempio, non sempre è conveniente consentire caratteri speciali all'interno di password o altre variabili particolari.
La funzione seguente consente di controllare una stringa alla ricerca di caratteri che non siano alfanumerici, senza l'uso di una espressione regolare.
In caso la stringa includa caratteri non consentiti la funzione restituirà true, altrimenti false.
public function hasSpecialchars(input)
Dim chars
Dim char
Dim ii
chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
for ii = 1 to Len(input)
char = Mid(input, ii, 1)
if(InStr(chars, char) = 0) then
hasSpecialchars = true
exit function
end if
next
hasSpecialchars = false
end function
La funzione in sé è molto semplice. La logica è quella di includere in una variabile, nel nostro caso chars, la lista di tutti i caratteri consentiti.
In seguito, viene controllata carattere per carattere l'intera stringa passata come input confrontandola con la lista dei valori permessi.
Se un carattere è presente nella stringa di input ma non in chars, allora è senz'altro un carattere speciale.
Il controllo termina e la funzione restituisce true.
Al contrario, se il ciclo di esame termina senza individuare caratteri non consentiti, la funzione termina anch'essa normalmente restituendo false