Nwlapcug.com


Controlli JavaScript per caratteri validi

Controlli JavaScript per caratteri validi


JavaScript può essere usato per controllare i caratteri validi in qualsiasi valore di dati detenuti all'interno del browser, dal testo immesso dall'utente nelle caselle di input o aree di testo, su qualsiasi valore all'interno di qualsiasi ambito tag o attributo dell'oggetto. I dati possono essere basati su testo, ad esempio un indirizzo e-mail o il codice postale o il binario, ad esempio un file binario incorporato. JavaScript può anche controllare per i caratteri da qualsiasi sito Web esterno caricandolo in un oggetto interno, ad esempio un'area di testo o la cornice all'interno del browser.

Convalida di specifica del formato

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

< html >< testa >< / testa >< corpo >

< id modulo = 'fmInfo' method = "post" action = 'l'http://www.yourwebsite.com' >

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

< input id = 'sbSubmit' type = 'Invia' valore = 'Invia' / >

< / form >

< script >

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

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

Function validateChars (obj, type) {

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

per (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;

}

Se ((bLowerCase===true) & &(bUpperCase===true) & &(bDigit===true)) restituisce true;

obj.Focus();

restituire false;

}

fmInfo.onsubmit=function() () {

var retVal=validateChars(txText);

Se (retVal = = = true) alert ('dati validi');

altro avviso ('dati non validi');

Return retVal;

}

< / script >< / corpo >< / html >

Codice sicurezza

Il codice sopra riportato è accessibile selezionando l'opzione di origine di visualizzazione dal menu del browser. Per rendere il codice JavaScript inaccessibili, per motivi di sicurezza, uno dovrebbe inserire le righe all'interno dell'ambito "< >" script in un file esterno "js" come suffisso. Questo può essere collegato in html utilizzando una linea come "< script tipo = ' text/javascript' src='yourfile.js' >< / script >" in entrambi i "< head >" o "< body >" tag ambito della pagina html principale.

Carattere di convalida di iterazione

Il codice sopra riportato fornisce un controllo di iterazione di carattere per password complesse. Utilizza un loop e il metodo di stringa "charAt(index)" per verificare che la stringa contenga almeno una lettera minuscola, una lettera maiuscola e un numero. In caso di errore, restituisce falsa, che genera l'evento onsbumit annullare l'invio del modulo.

ExpressionValidation regolare

Se uno volesse aumentare la robustezza della password aggiungendo requisiti per almeno un carattere non alfanumerico stampabile e una lunghezza minima di sei caratteri, la tecnica di iterazione precedente potrebbe diventare piuttosto lunga. Utilizzo di espressioni regolari sarebbe più ordinato. L'oggetto di espressione regolare accetta due parametri quando creata un'istanza. Il primo parametro è il modello di corrispondenza, e il secondo è il modificatore. Ad esempio, la riga "var reg = new RegExp ('ap', 'g');" specifica una ricerca per una o più occorrenze di "ap". Usando una combinazione di caratteri letterali, metacaratteri, staffe e simboli all'interno il modello di corrispondenza, è possibile cercare qualsiasi modello testuale o binario in qualsiasi variabile di stringa. Il secondo parametro può essere una stringa vuota, o qualsiasi combinazione delle tre lettere "g", "i" e "m", che specificano rispettivamente se la partita deve essere globale (vale a dire per continuare la ricerca per tutti gli incontri dopo la prima occorrenza), caso insensitve, o su più righe (cioè di trovare corrispondenze di "fine dell'ambito" alla fine della riga, così come la fine della stringa, per le stringhe che contengono più righe).

Convalida della Password forte

Seguito è riportata una versione più forte di espressione regolare password della sopra "validateChars()". Il modello "[a-z] +" specifica per la ricerca di caratteri compresi tra "a" e "z". "Search ()" è un metodo di stringa che restituisce la posizione di indice del primo match. Se viene trovata una corrispondenza (cioè in posizione di indice di stringa 0 o maggiore), la variabile count "trovato" viene incrementata di 1. Questo si ripete per le gamme "A" alla "Z", cifre e i caratteri non alfanumerici stampabili nelle gamme ottale "\041" a "\057," "\072" a "\0101", "\133" a "\140" e "\173" a "\176." La meta-character "\d" e i valori ottali sono doppio escape da barre rovesciate perché il modello si trova all'interno di una stringa tra virgolette. "\S{6,}" indica che la password deve contenere almeno sei caratteri stampabili. Al termine della convalida di tutti i cinque criteri, la funzione restituisce un risultato positivo.

Function validateChars(obj) () {

var trovato = 0;

reg var = nuovo RegExp('[a-z]+','g');

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

reg.Compile ('[A-Z] +', 'g');

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

reg.Compile una ('\d+', 'g');

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

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

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

in reg.Compile('^\s{6,}$','g');

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

Se (trovato = = = 5) restituisce true;

obj.Focus();

restituire false;

}

Convalida di formato di indirizzo di posta elettronica

Le linee qui sotto mostrano il codice di espressione regolare per cercare un indirizzo email valido. "^" specifica per abbinare all'inizio della riga. Il doppio "\w" Escape rappresenta qualsiasi lettera dell'alfabeto, "\d" qualsiasi cifra, "+" rappresenta almeno un'occorrenza, "*" rappresenta nessuno o più occorrenza. "$" specifica per corrispondere alla fine della riga. ". \w{2,6}" specifica per una partita per due-sei lettere dopo un periodo.

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

Se (obj.value.search(reg) > -1) restituisce true;

Esempio di convalida del formato codice postale

Allo stesso modo, uno in grado di convalidare codici di avviamento postale utilizzando le linee qui sotto.

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

Se (obj.value.search(reg) > -1) restituisce true;

Esempio di convalida formato numero telefono

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

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

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

Se (tel.search(reg) > -1) restituisce true;

Conclusione

Come mostrano gli esempi sopra riportati, utilizzando succinte righe di codice, le espressioni regolari possono eseguire la convalida di dati complessi. Per ulteriori informazioni sulle espressioni regolari, fare riferimento alla sezione risorse.