Controlli JavaScript per Caratteri validi

April 12

Controlli JavaScript per Caratteri validi


JavaScript può essere utilizzato per verificare la presenza di caratteri validi in ogni valore di dati tenuto all'interno del browser, dal testo immesso dall'utente in scatole di ingresso o aree di testo, a qualsiasi valore all'interno di ogni ambito tag o attributo dell'oggetto. I dati possono essere basati su testo, come ad esempio un indirizzo email o un codice postale, o binario, come ad esempio un file binario incorporato. JavaScript può anche verificare la presenza di caratteri da qualsiasi sito esterno caricandola in un oggetto interno, come ad esempio una cornice o di testo area all'interno del browser.

Convalida specifiche per il formato

Per l'utente è entrato dati, gran parte di essa è ha una specifica di formato o requisito contenuto minimo, che può essere utilizzato per la convalida. Questo deve essere chiamato da un evento come un clic, forma presentare o premere il tasto. Nel codice di esempio riportato di seguito le "validateChars ()" viene chiamato ogni volta che il pulsante l'utente fa clic sul modulo presentare.

<Html> <head> </ head> <body>

<Form id = metodo 'fmInfo' = 'post' azione = 'http: //www.yourwebsite.com'>

<Input id = 'txText' type = 'text' />

<Input id = tipo 'sbSubmit' = 'submit' value = 'submit' />

</ Form>

<Script>

var txText = document.getElementById ( 'txText');

var fmInfo = document.getElementById ( 'fmInfo');

validateChars funzione (obj, type) {

var char = '', bLowerCase = false, bUpperCase = false, bDigit = false;

for (var i = 0; i <obj.value.length; i ++) {

char=obj.value.charAt(i);

if ((char> = 'a') && (char & lt; = 'z')) bLowerCase = true;

if ((char> = 'A') && (char & lt; = 'Z')) bUpperCase = true;

if ((char> = '0') && (char & lt; = '9')) bDigit = true;

}

if ((bLowerCase === vero) && (bUpperCase === vero) && (bDigit === true)) return true;

obj.focus ();

return false;

}

fmInfo.onsubmit = function () {

var = retVal validateChars (txText);

if (retVal === vero) alert ( 'dati validi');

altro alert ( 'dati non validi');

tornare retVal;

}

</ Script> </ body> </ html>

Codice di sicurezza

Il codice di cui sopra è accessibile selezionando l'opzione di visualizzazione di origine dal menu del browser. Per rendere il codice JavaScript inaccessibili, per motivi di sicurezza, si dovrebbe posizionare le linee all'interno del file "<script>" portata in un esterno "js" anteposto. Questo può essere collegato in html utilizzando una linea del tipo "<script type = 'text / javascript' src = 'yourfile.js'> </ script>" sia il tag "<head>" o "<body>" campo di applicazione della pagina html principale.

Carattere Iterazione convalida

Il codice di cui sopra prevede un assegno di iterazione carattere per una forte password. Esso utilizza un ciclo for e il metodo stringa "charAt (indice)" per verificare che la stringa contiene almeno una lettera minuscola, una lettera maiuscola e un numero. In caso di fallimento, restituisce false, che fa sì che l'evento onsbumit di annullare l'invio del modulo.

ExpressionValidation regolare

Se si volesse aumentare la forza della password, aggiungendo i requisiti per almeno un carattere non alfanumerico stampabile e una lunghezza minima di sei caratteri, la tecnica di iterazione precedente potrebbe diventare molto lunga. Uso delle espressioni regolari sarebbe più ordinato. L'oggetto espressione regolare richiede due parametri quando un'istanza. Il primo parametro è il pattern match, e il secondo è il modificatore. Ad esempio, la riga "var reg = new RegExp ( 'AP', 'g');" specifica la ricerca di uno o più occorrenze di "ap". Usando una combinazione di caratteri letterali, metacaratteri, staffe e simboli all'interno del pattern match, è possibile cercare qualsiasi testo o modello binario in qualsiasi variabile stringa. Il secondo parametro può essere una stringa vuota, o una combinazione delle tre lettere "g", "i", e "m", che, rispettivamente, specificare se la partita deve essere globale (cioè per continuare la ricerca per tutte le partite dopo la prima occorrenza ), caso insensitve, o multilinea (ad esempio per trovare "fine del campo di applicazione" corrisponde alla fine della riga, così come fine della stringa, per le stringhe contenenti più righe).

Convalida password sicura

Una versione più forte espressione regolare password precedenti "validateChars ()" è mostrato sotto. Il modello "[az] +" specifica per la ricerca di caratteri tra "a" e "z". "Search ()" è un metodo di stringa che restituisce la posizione di indice della prima partita. Se viene trovata una corrispondenza (cioè a stringa posizione di indice 0 o superiore), la "trovata" contare variabile viene incrementata di 1. Questo si ripete per le gamme "A" alla "Z", le cifre ei caratteri non alfanumerici stampabili nelle gamme ottale "\ 041" a "\ 057", "\ 072" a "\ 0101", "\ 133" a "\ 140" e "\ 173" a "\ 176". La meta-carattere "\ d" ed i valori ottali sono con doppio escape dal backslash perché il modello è all'interno di una stringa tra virgolette. "\ S {6,}" indica che la password deve contenere almeno sei caratteri stampabili. Su validazione di tutti i cinque criteri, la funzione restituisce un risultato di successo.

validateChars funzione (obj) {

var trovato = 0;

var reg = new RegExp ( '[az] +', 'g');

if (obj.value.search (reg)> -1) trovato ++;

reg.compile ( '[AZ] +', 'g');

if (obj.value.search (reg)> -1) trovato ++;

reg.compile ( '\ d +', 'g');

if (obj.value.search (reg)> -1) trovato ++;

reg.compile ( '([\ 041- \ 057] | [\ 072- \ 101] | [\ 133- \ 140] | [\ 173- \ 176])', 'g');

if (obj.value.search (reg)> -1) trovato ++;

reg.compile ( '^ \ S {6,} $', 'g');

if (obj.value.search (reg)> -1) trovato ++;

if (trovato === 5) return true;

obj.focus ();

return false;

}

Indirizzo e-mail Formato Validation

Le linee che seguono mostrano il codice espressioni regolari per verificare la presenza di un formato di indirizzo e-mail valido. "^" Specifica in modo che corrisponda all'inizio della linea. Il doppio scappato "\ w" rappresenta ogni lettera dell'alfabeto, "\ d" rappresenta qualsiasi cifra, "+" rappresenta almeno una occorrenza, "*" rappresenta nessuno o più verificarsi. "$" Specifica in modo che corrisponda alla fine della riga. ". \ W {2,6}" specifica in modo che corrisponda a due a sei lettere dopo un periodo.

var reg = new RegExp ( '^ [\ w \ d \ -.] + @ [\ w \ D] [\ w \ d -] * (\ [\ w \ d -]. +) * [\ w. ] {2,6} $ ',' ig ');

if (obj.value.search (reg)> -1) return true;

CAP Formato di convalida Esempio

Allo stesso modo, si può convalidare codici di avviamento postale che utilizzano le linee sotto.

var reg = new RegExp ( '^ \ d {5} (- \ d {4}) * $', 'ig');

if (obj.value.search (reg)> -1) return true;

Numero di telefono Formato di convalida Esempio

L'esempio seguente rimuove tutti i caratteri non cifre utilizzando il metodo stringa di sostituzione, e assegna la stringa di uscita per "tel". Se "tel" contiene 11 o più cifre, questo viene restituito come un formato numero di telefono valido.

var = tel obj.value.replace (/ \ D / g, '');

var reg = new RegExp ( '^ \ d {11,} $', 'ig');

if (tel.search (reg)> -1) return true;

Conclusione

Come dimostrano gli esempi di cui sopra dimostrano, utilizzando linee succinta di codice, le espressioni regolari possono eseguire la convalida dei dati complessi. Per ulteriori informazioni sulle espressioni regolari si rimanda alla sezione Risorse di seguito.