JavaScript controles voor geldige tekens

JavaScript controles voor geldige tekens


JavaScript kan worden gebruikt om te controleren voor geldige tekens in elke gegevenswaarde gehouden binnen de browser van de gebruiker ingevoerde tekst in invoervakken of tekstgebieden, op een andere waarde binnen elk label toepassingsgebied, of object kenmerk. De gegevens kunnen tekst-gebaseerd, zoals een e-mailadres of postcode of binary, zoals een ingesloten binair bestand. JavaScript kan ook zoeken naar tekens van een externe website door deze te laden in een interne object, zoals een frame of het tekstvak gebied binnen de browser.

Indelingsspecifieke validatie

Voor gegevens van de gebruiker heeft ingevoerd, veel van het is heeft een formaat specificatie of minimum eis, die kan worden gebruikt voor validatie. Dit moet worden aangeroepen vanuit een gebeurtenis zoals een klik, verzenden of sleutel pers vormen. In het voorbeeld wordt code onder de "validateChars()"-functie aangeroepen als de gebruiker op de knop formulier verzenden.

< html >< hoofd >< / head >< lichaam >

< formulier-id = 'fmInfo' methode = 'post' actie '-http://www.yourwebsite.com' = >

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

< input id = 'sbSubmit' type = 'submit' waarde = 'submit' / >

< / form >

< script >

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

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

functie validateChars (obj, type) {}

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

voor (var ik = 0; ik < 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;

}

Als ((bLowerCase===true) & &(bUpperCase===true) & &(bDigit===true)) terug waar;

obj.focus();

resultaat false;

}

{fmInfo.onsubmit=function()}

var retVal=validateChars(txText);

Als (retVal === waar) waarschuwing ('geldige gegevens');

anders waarschuwing ('ongeldige gegevens');

Return retVal;

}

< / script >< / body >< / html >

Codebeveiliging

De bovenstaande code is toegankelijk door de weergaveoptie bron in het browsermenu te selecteren. Om de JavaScript-code ontoegankelijk zijn, om redenen van veiligheid, moet een plaats de regels binnen het bereik van de "< script >" in een externe ".js" in het bestand. Dit kan worden gekoppeld in de HTML-code met behulp van een regel zoals "< script type = ' text/javascript' src='yourfile.js >< / script >" in ofwel de "< head >" of "< body >" tag reikwijdte van de belangrijkste HTML-pagina.

Teken iteratie validatie

De bovenstaande code biedt een teken iteratie check voor sterk wachtwoord. Het maakt gebruik van een lus en de methode van de tekenreeks "charAt(index)" om te controleren dat de tekenreeks ten minste één kleine letter een hoofdletter en één nummer bevat. Storing, het geeft als resultaat ONWAAR is, waardoor de onsbumit gebeurtenis te annuleren het indienen van formulieren.

Regelmatige ExpressionValidation

Als een verhogen de sterkte van het wachtwoord wilde door eisen voor ten minste één afdrukbare niet-alfanumeriek teken en een minimale lengte van zes tekens toe te voegen, kan de bovenstaande iteratie techniek worden vrij lang. Met behulp van reguliere expressies zou meer tidier. De reguliere expressie-object neemt twee parameters wanneer een exemplaar gemaakt. De eerste parameter is de wedstrijd patroon, en de tweede is de modifier. Bijvoorbeeld, de regel "var reg = nieuwe RegExp ('ap', 'g');" Hiermee geeft u een zoekopdracht voor een of meer voorkomens van "ap." Met een combinatie van letterlijke tekens, metatekens, beugels en symbolen binnen het patroon wedstrijd, kunt u zoeken naar alle tekst of binaire patroon in een string-variabele. De tweede parameter kan bestaan uit een lege tekenreeks, of een willekeurige combinatie van de drie letters "g", "i" en "m", die respectievelijk opgeven of de wedstrijd moet globale (dat wil zeggen om te blijven zoeken naar alle wedstrijden na het eerste exemplaar), case insensitve, of multiline (dat wil zeggen om te vinden "end of toepassingsgebied" wedstrijden op einde van regel evenals einde van de tekenreeks, voor tekenreeksen met meerdere regels).

Sterk wachtwoordvalidatie

Een sterker wachtwoord reguliere expressie versie van de bovenstaande "validateChars()" is hieronder weergegeven. Het patroon "[a-z] +" Hiermee geeft u aan zoeken naar tekens tussen 'a' en 'z'. "search()" is een tekenreeks methode die de indexpositie van de eerste wedstrijd retourneert. Als er een match wordt gevonden (d.w.z. op tekenreeks indexpositie 0 of groter), is de "gevonden" graaf variabele verhoogd met 1. Dit wordt herhaald voor de varieert 'A' tot 'Z', cijfers, en de afdrukbare niet-alfanumerieke tekens in de octale bereiken "\041" naar "\057," "\072" naar "\0101," "\133" naar "\140" en "\173" naar "\176." De meta teken "\d" en de octale waarden zijn dubbel-ontsnapt door backslashes omdat het patroon binnen een tekenreeks tussen aanhalingstekens is. "\S{6,}" geeft aan dat het wachtwoord moet ten minste zes afdrukbare tekens bevatten. Op succesvolle validatie van alle vijf criteria retourneert de functie een succesvol resultaat.

functie validateChars(obj) {}

var gevonden = 0;

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

Als (obj.value.search(reg) > -1) gevonden ++;

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

Als (obj.value.search(reg) > -1) gevonden ++;

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

Als (obj.value.search(reg) > -1) gevonden ++;

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

Als (obj.value.search(reg) > -1) gevonden ++;

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

Als (obj.value.search(reg) > -1) gevonden ++;

Als (gevonden === 5) terug waar;

obj.focus();

resultaat false;

}

E-mail adres formaat validatie

De regels hieronder weergegeven de code van de reguliere expressie om te controleren of een geldig e-mail adresformaat. "^" geeft om aan te passen aan begin van regel. De dubbele ontsnapte "\w" vertegenwoordigt een willekeurige letter van het alfabet, "\d" vertegenwoordigt een willekeurig cijfer, "+" vertegenwoordigt ten minste één gebeurtenis, "*" vertegenwoordigt geen of meer voorkomen. "$" geeft om aan te passen aan einde van regel. ". \w{2,6}" Hiermee geeft u aan match voor twee tot zes brieven na een periode.

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

Als (obj.value.search(reg) > -1) keren waar;

Voorbeeld van de validatie van de Format van postcode

Op dezelfde manier kan een zip-codes met behulp van de onderstaande regels valideren.

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

Als (obj.value.search(reg) > -1) keren waar;

Voorbeeld van de validatie van de Format van telefoon het nummer

In het volgende voorbeeld verwijdert alle niet-cijferige tekens met behulp van de methode van de tekenreeks vervangen, en de output string te "tel" toegewezen. Als "tel" 11 of meer cijfers bevat, wordt dit een geldig telefoon nummer formaat geretourneerd.

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

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

Als (tel.search(reg) > -1) keren waar;

Conclusie

Als de bovenstaande voorbeelden tonen, met behulp van beknopte coderegels geplaatst, kunnen reguliere expressies complexe gegevensvalidatie uitvoeren. Raadpleeg de sectie bronnen hieronder voor meer informatie over reguliere expressies.