Funzione trim e controllo input in javascript

18 settembre 2009 di admin

In questo articolo presentiamo alcune funzioni in javascript utili per effettuare controlli sulla validità dei dati immessi da un utente in un form.

La prima funzione che vi presentiamo è la trim(), che prende in input una stringa e restituisce la stringa stessa senza gli spazi iniziali e finali:

function trim(arg)
{
re=/\s+$|^\s+/g;
return arg.replace(re,"");
}

Tale funzione non fa altro che applicare l’espressione regolare re alla stringa di input arg.
Supponendo che arg sia ” ciao ciao  “, trim(arg) resituirà la stringa “ciao ciao”.

Quando vogliamo testare se un valore immesso da un utente è un’indirizzo e-mail possiamo utilizzare la seguente funzione:

function check_mail(indirizzo) {
if (window.RegExp) {
var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
var regnv = new RegExp(nonvalido);
var regv = new RegExp(valido);
if (!regnv.test(indirizzo) && regv.test(indirizzo))
return true;
return false;
}
else {
if(indirizzo.indexOf("@") >= 0 && indirizzo.indexOf(".") > indirizzo.indexOf("@"))
return true;
return false;
}
}

La funzione check_mail() usa anch’essa le espressioni regolari per controllare se l’indirizzo e-mail immesso ha un formato corretto.

Le ultime due funzioni che vedremo servono per controllare se un certo valore è numerico.

In particolare la funzione is_integer() controlla se l’argomento passato è un numero intero non negativo:

function is_integer(arg)
{
var len = arg.length;
var count=0;
var Number=true;
/* ciclo su tutti i caratteri e verifico */
for( count=0; count<len; count++ )
{
/* leggo il carattere */
if( arg.charAt( count ) < '0' || arg.charAt( count ) > '9' )
{
/* non e' un numero */
Number=false;
break;
}
}
return Number
}

La funzione is_integer() restituisce true se l’argomento passato è un intero non negativo, altrimenti restituisce false.

Per concludere presentiamo la funzione is_not_negative_number(), per controllare se un certo valore è di tipo numerico non negativo, includendo quindi anche i numeri con cifre decimali:

function is_not_negative_number(arg)
{
arg = arg.replace(".","")
var len=arg.length;
/* se la stringa è di lunghezza 0 restituisco false */
if(len==0)
return false;
var count=0;
var decimal=false
/* ciclo su tutti i caratteri e verifico */
for(count=0;count<len;count++)
{
/* leggo il carattere */
if(arg.charAt( count ) < '0' || arg.charAt( count ) > '9' )
/* se è una virgola */
if(arg.charAt(count)==',')
/* se è la prima virgola che incontro memorizzo questa informazione altrimenti restituisco false */
if(count>0 && !decimal)
decimal=true
else
return false;
else
/* non e' un numero */
return false;
}
return true;
}

La funzione is_not_negative_number() restituisce true se l’argomento passato è un numero non negativo, altrimenti restituisce false.

Lascia un commento