Validating Ulike inngangsdata i Flash 
 Del 
 Del 
 en 
 Del 
 
 Dette Cyber mandag Envato Tuts + Kursene vil bli redusert til bare $ 3. Ikke gå glipp av. 
 
 I dag, nesten alt på nettet er basert på brukerundersøkelser. En kontakt form, en bruker registreringsskjemaet, en søkeboks og så videre. Som utvikler du kan ikke bare stole på at brukeren kan skrive alt som det skal være. For å være sikker på at du alltid får de riktige data fra brukerne du trenger for å validere input. Les videre for å finne ut hvordan .. 
 
 
 
 I denne opplæringen vil du lære hvordan ulike data er ment å være strukturert og hvordan å validere disse dataene. Merk at disse metodene ikke kan være den beste der ute, eller de mest komplette løsninger 
 
 Følgende temaer vil bli dekket i denne opplæringen. 
 
< li> E-post validering
Web-adresse validering
Telefonnummer validering
ISBN (ISBN) validering
International Bank Account Number (IBAN ) validering
Kredittkortnummer validering
 Hvert tema behandles uavhengig, slik at du kan følge de du er interessert i. 
 
Endelig resultat Forhåndsvisning
 Dette er hvordan vår validator vil se: 
 
 Det er flere felt med det formål demonstrasjon. I en reell situasjon vil du sjelden har alle disse feltene i et enkelt skjema. 
 
 I denne opplæringen vil jeg bare dekke koding del. Du vil finne det grafiske grensesnittet i kildefilene. Å følge med dere trenger Flash CS3 +. 
 
 For bedre å forstå denne opplæringen du må ha litt grunnleggende kunnskap om regulære uttrykk og strengfunksjoner. Sjekk denne ressursen om regulære uttrykk i Actionscript 3.0 hvis du ikke føler deg komfortabel med syntaksen. 
 
 Forstå FLA fil 
 
 Vel, det er ikke en veldig komplisert grensesnitt. Hvis du åpner  Validator.fla    Interface   På  Action   Den første linjen representerer en forekomst av vår fremtid  Validator   Vi legger til hendelsen lyttere til scenen for fokus hendelser. Vi vil bruke disse hendelsene til å validere våre inngangsdata bare når et tekstfelt har fokus bare for å unngå unødvendige beregninger.    onFrameUpdate   Vi skal legge vår fremtid kode i bryteren uttalelse. Alt annet forblir uendret over denne opplæringen. I biblioteket finner du en MovieClip heter  TextBox   Nå la oss komme til kodingen   Først opprette en ny Actionscript-fil og gi den navnet  Validator.as   Lim eller skriv inn følgende kode:   Dette vil være rammen av vår Validator klasse. Vi vil legge til metoder til denne klassen for hver validering typen vi utfører. Plasser denne filen i samme mappe som Validator.fla filen   Kalenderen dato er en av de mest brukte data på nettet. Strukturen varierer fra sone til sone. Vi skal se på to hoved datoer formater: Storbritannia versjon og USA versjon.   I begge tilfeller DD står for dagen, står MM for måneden og ÅÅÅÅ står for året. Det er også mulig å bruke en annen karakter for separatoren, som en skråstrek   Hvis du trenger mer dokumentasjon du kan lære mer om kalenderen datoer her   Først av alt vi trenger for å sjekke for å se om datoformatet er riktig. Lim eller skriv inn følgende kode i  Validator   Den første linjen i funksjonen representerer mønsteret brukes til å sjekke måned:   Dette mønsteret vil matche et tall fra 1 til 12. For tall under 10 vil det se etter sifre med ledende null eller uten   Den andre linjen representerer den dagen mønster:   Dette vil matche et tall fra 1 til 31. Som tidligere nevnt, for tall under 10 år det . vil sjekke for siffer med eller uten ledende null   Den neste linjen representerer året mønster:   Dette vil sjekke om tall mellom 1000 og 9999. Selvfølgelig vi kunne brukte et mønster å se etter år fra 0 til mer enn 9999, men på grunn av problemer vi vil se etter tall innenfor disse ni årtusener.   Den variable  separator   De to variablene  usDate Hotell og  ukDate   Dette vil sjekke for å se om en gyldig  måned    ukDate   I den siste linjen tester vi strengen bruke trefoldig operatøren for å se om det er en gyldig dato i noen av de to formatene og returnerer sant eller usant, avhengig av saken. I en reell case scenario vil du ikke se etter begge disse verdiene, da dette kan føre til forvirring om DD er mindre enn 13 (f.eks 01.06.2010)   Åpne Validator.fla filen gitt i kildefilene. Velg  Interface   Mest sannsynlig vil du ikke finne en e-leverandør som gjør at alle disse tegnene i e-postadresse. For å validere slik en e-postadresse krever en lang og svært komplisert regulært uttrykk. Som mange selskaper (for eksempel Yahoo !, MSN, Gmail.) At bare e-postadresser som inneholder alfanumeriske tegn og bindestrek "-" ".", Dot og understrek "_", vil vi lage en brikke som vi vil jobbe med disse slags adresser.   For en mer detaljert dokumentasjon om nettadresser (URL) se denne siden.   Lim eller skriv inn følgende kode i vår Validator klassen like etter  checkEmailAddress   Den første linjen definerer mønsteret brukes til å sjekke protokollen. Vanligvis kan dette være valgfritt (avhengig av saken):   Den andre variabelen definert representerer domenet navngi mønster. Et gyldig domenenavn og underdomene navn bare inneholder alfanumeriske tegn, punktum "." og bindestrek "-":   Neste er det toppdomene mønsteret brukes til å sjekke om toppdomenet er gyldig. En Top Level Domain (TLD) kan bare inneholde bokstaver fra A til Z, små bokstaver med 2 eller flere tegn (i vårt tilfelle 6):   For å gjøre innsjekkingen enda mer streng kan du sjekke om TLD er en eksisterende:   Dette er bare noen få generiske toppdomener. Du kan se hvordan dette blir ganske lenge du legge til flere og flere toppdomener.    web   Som i tilfellet av e-post adresse webadresser er små bokstaver, slik at vi bruke "i" (små bokstaver) modifier   Her finner du en komplett liste over landet ringer koder hvis du ønsker å begrense . telefonnummer innspill til bare flere land også kan du sjekke nummerering Plan for å se hvordan telefonnumre brukes i ulike nettverk og land   Lim eller skriv inn følgende kode i vår Validator klassen like etter  checkWebAddress   Den første linjen definerer mønsteret brukes til å kontrollere landkode. Som sagt dette er et tall mellom 1 og 999 innledes med "+" eller "00" (valgfritt):   Den andre variabelen representerer det faktiske antallet. Vi vil gjøre det for å se etter en rekke med 3 til 10 sifre:   På den tredje linjen vi strippe våre telefonnummer av noen ekstra mellomrom eller skilletegn holder bare på "+" tegn og sifre:    telefon   Den siste linjen returnerer resultatet av testing av mønster over den medfølgende telefonnummeret. Enkelt nok, ikke sant   Hvis du trenger mer detaljerte spesifikasjoner om ISBN-numrene du kan finne alt om dem her. Wiki-siden inneholder informasjon om både ISBN-10 og ISBN-13 nummer   Lim eller skriv følgende kode på  Validator   De første linjene i vår metode strippe antall mellomrom og bindestrek. Så kontrollerer den om lengden er riktig. Et ISBN-10 nummer må ha 9 siffer + en kontroll karakter:   I  annet   I  Sifrene   Nå som vi har hvert siffer i nummeret må vi multiplisere det med sin vekt. Vi kan gjøre dette med en for-løkke som multipliserer vi hvert element (siffer) i  sifrene   I neste linje med kode kontrollerer vi resten av summen med hensyn til 11:   Dette kunne vært gjort med en if setning, men jeg har brukt den trefoldig operatør som er en forkortelse metode. Trefoldig operatøren arbeider like så  variabel = tilstand? verdi1: verdi2;   Neste vi sjekke resultatet med en bryter uttalelse og gi verdien til  gyldig   Og til slutt vi tilbake resultatet av testen   Lim eller skriv inn følgende kode i  Validator    sifre    vekt   Vi bruker en in-else setningen for å se om det er riktig antall sifre i tallene matrise, unntatt kontrollsiffer   I for-loop vi. iterere gjennom sifre matrise og multipliserer alle tallene med sin vekt (1 og 3 alternerende dem hver sifret) og oppbevar den summen i  resultere   Til slutt gjør vi divisjon med 10 av summen. Hvis det er 0 resultatet er 0 annet vi trekke fra resten fra 10:   Hvis resultatet sifferet er den samme som kontroll sifret antall er gyldig   Åpne  Validator.fla Hotell og modifisere koden på linjene 34 til 36 som så:   Dette vil sjekke nummeret både som ISBN-10 og ISBN-13   Test filmen og skriv ISBN-nummer i tekstfeltet merket med "ISBN-nummer".. Det samme gjelder for denne type tall som i tilfellet med ISBN-10 seg. Hvis et tall er gyldig det betyr ikke nødvendigvis at det også finnes   International Bank Account Number eller IBAN for kort er en internasjonal standard for nummerering bankkontoer. Dette består av følgende:   Tallet gjelder bare dersom resten er 1.   Sjekk denne siden for en fullstendig dokumentasjon på International Bank Account Numbers   Lim eller skriv inn følgende kode i vår Validator klassen like etter  validateISBN13    nums    chars   Med den første for-loop beveger vi oss fire første tegnene på baksiden ved å fjerne dem fra begynnelsen av tabellen og plassere dem på baksiden:    exp   I den andre for-loop vi sjekke hver karakter i  chars   Etter å konvertere hver bokstav i et antall vi forvandle array til en streng og tilordne den til  IBAN   Til slutt vi tilbake hvis resten av divisjonen med 97 i antall er lik 1 eller ikke   Du lurer kanskje på hvorfor jeg har brukt en egendefinert funksjon i stedet for "%" operator. Vel ... hvis du tenker over det, har antallet 20+ sifre (stor) og normal modulus operatør vil ikke fungere som forventet. Så vi trenger å definere en måte å beregne modulus for store tall.   For å beregne modulus av store tallene jeg har brukt en implementering av den "splitt og hersk" metoden. For å holde det kort denne fremgangsmåte subtraherer en del av det store antall og gjør modulen til den del, hvoretter den føyer resultatet til den gjenværende del av det store antall. For en nærmere presentasjon av denne metoden se denne linken   Kopier eller skriv inn følgende kode i  Validator    tmp    antall    resultat   Vi legger til resultatet i begynnelsen av det store antallet og gjenta de tidligere tre trinnene mens antall lengden er større enn 0:   Og til slutt vi tilbake resultatet av modulus   For videre lesning. se bankkortnummer og Luhn algoritme wiki-sider   Lim eller skriv inn følgende kode i vår Validator klassen bare etter  validateIBAN    American   < em> dinnersClub    MasterCard    visa   Vi bruker den utvidede modifier ("x") i alle uttrykk, slik at mellomrom vil bli ignorert fra. Dette brukes bare for å gjøre uttrykket lettere å lese.   Den boolske variabelen  gyldig   På den sjette linjen vi trekke ut sifrene fra vår nummer (nummeret er vanligvis skrevet med bindestrek eller mellomrom for lesbarhet formål):   I hvis setningen vi sjekke om antall matcher noen av de fire mønstre definert tidligere:   På den siste linjen vi returnere true hvis tallet er gyldig og sender Luhn checksum   Skriv inn eller lim inn følgende kode etter    sifre   På neste linje vi forandre  sifrene   I for-loop vi bare oppsummere alle sifrene:   Og slutt sjekker vi om resten er 0 og returnere true eller false ellers:    Merk :   Åpne  Validator.fla   Opprett en statisk tekst Feltet over TextBox og skrive i det "kortnummeret:".   Skriv inn følgende kode på linje 40.   Dette vil sjekke inngangsdata i  cardNumberField   Nå er dette hvordan vår siste klasse ser ut:. 
 fil i begynne mappen på Source nedlasting, vil du finne to rammer: en låst, heter  Actionanmeldelser og en annen som heter  Interface 
. 
 
 laget er tom. Der vil vi legge våre tekstbokser som brukes til data input 
 
 laget du vil finne denne koden: 
 Var validator. Validator = new Validator (); scenen. addEventListener (FocusEvent.FOCUS_IN, registrer); stage.addEventListener (FocusEvent.FOCUS_OUT Avregistrer), funksjon register (e: FocusEvent): void {e.target.addEventListener (Event.ENTER_FRAME, onFrameUpdate, falsk, 0, true);} funksjon unregister (e: FocusEvent): void {e.target.removeEventListener (Event.ENTER_FRAME, onFrameUpdate);} funksjon onFrameUpdate (e: Hendelses): void {var inngang: String = e.target.text; Var gyldig: Boolean; bryteren (e.target) {} if (gyldig) e.target.parent.validTick.gotoAndStop ('gyldig'); annet e.target.parent.validTick.gotoAndStop ('ugyldig');} 
 klasse. Vi vil bruke et eget AS fil til å inneholde denne klassen, slik at den kan brukes i andre prosjekter. 
 
 
 funksjonen kalles på hver ramme når et tekstfelt har fokus på validere data i den. 
 
. Denne har en inngang Textfield med en forekomst navn  input_txt Hotell og annen MovieClip heter  validTick 
 med to rammer merket "gyldig" og "ugyldig". 
 
 
 
 Trinn 1:. Forberedelser 
 
 
 pakken {public class Validator {offentlig funksjon Validator () {trace ('Validator opprettet'); }}} 
 
 
 Trinn 2:. Calendar Dato Struktur 
 
 
 Den britiske dato uttrykkes som DD-MM-ÅÅÅÅ. 
 
 Den amerikanske datoen er uttrykt som MM-DD-ÅÅÅÅ. 
 
 
 
 
 Trinn 3:.. Calendar Dato Check 
 
 Kode 
 
 klasse rett etter konstruktøren: 
 offentlig funksjon checkDate (dato: String): Boolean {var måneden: String = "(0 [1-9] | 1 [012]) "; Var dagen: String = "(0 [1-9] | [12] [0-9] | 3 [01]?)"; Var år: String = "([1-9] [0-9] {3})"; Var separator: String = "([. \\ /-] {1})"; Var usDate: RegExp = new RegExp ("^" + måned + separator + dag + "\\\\ 2" + år + "$"); Var ukDate: RegExp = new RegExp ("^" + dag + separator + måned + "\\\\ 2" + år + "$"); avkastning (usDate.test (dato) || ukDate.test (dato) til stede:? false); } 
 Forklaring 
 
 Var måned: String = "(0 [1-9] | 1 [012]?)"; 
 
 Var dag. String = "(0 [1-9] | [12] [0-9] | 3 [01]?)"; 
 
 Var år: String = "([1-9] [0-9] {3})"; 
 
 sjekker bare hvis en av disse fire separatorer brukes: bindestrek "-", prikk, foran skråstrek "/" og white space "" 
 ".". 
 representerer de vanlige uttrykk som brukes for å sjekke en dato. De er de samme i utgangspunktet den eneste forskjellen er rekkefølgen av måneden og dagen 
 Var usDate. RegExp = new RegExp ("^" + måned + separator + dag + "\\\\ 2" + år + "$"); 
 er i begynnelsen av strengen. Etter det sjekker om en gyldig  separator 
 brukes så det sjekker for en gyldig  dag 
. Neste den bruker en backreference til den andre gruppen benyttet i uttrykket (utskilleren) for å sjekke om den andre separatoren ble brukt. Og til slutt det sjekker for en gyldig  år 
 på slutten av strengen. 
 
 uttrykk har samme effekt. Den eneste forskjellen er at det vil sjekke for  dag 
 i begynnelsen av strengen. 
 
 
 
 Trinn 4:. Calendar Dato Gjennomføring 
 
 lag og plassere en forekomst av  TextBox 
 filmklipp på scenen. For å gjøre dette ganske enkelt dra den fra biblioteket hvor som helst på scenen. Gi den en forekomst navn  dateField 
. 
 
 
 
 
 Trinn 9: Web Address Sjekk 
 
 Kode 
 
 metode: 
 offentlig funksjon checkWebAddress (adresse : String): Boolean {var protokollen: String = "(http: \\ /\\ /| ftp: \\ /\\ /)"; Var domenenavn: String = "([a-Z0-9 .-] {2})"; Var domainExt: String = "([a-z] {2,6})"; Var nettet: RegExp = new RegExp ('^' + protokoll + + domenenavn + "\\." + domainExt + '$', "i" '?'); returnere web.test (adresse);} 
 Forklaring 
 
 Var protokoll: String = "(? Http: \\ /\\ /| ftp: \\ /\\ /)?"; 
 Var domenenavn: String = "([a-Z0-9 .-] {2})"; 
 Var domainExt: String = "([a] {2,6})"; 
 Var domainExt: String = "(com | net | org | info | tv | mobi | museum | gov | biz | tel | navn | edu | asia | reise | pro) "; 
 
 variabel representerer Regular Expression brukes til å teste om nettadressen er gyldig. Dette sjekker om den medfølgende adressen er bygd opp fra protokollen (valgfritt) og domene (domene må bestå av et domenenavn og et toppdomene atskilt med punktum tegn ".": 
 Var nettet: RegExp = new RegExp ('^' + protokoll + + domenenavn + "\\." + domainExt + '$', "i" '?'); 
 
 
 Trinn 10:. Web Address Gjennomføring 
 
 
 
 Trinn 12:. Telefonnummer Sjekk 
 
 Kode 
 
 metode: 
 offentlig funksjon checkPhoneNumber (telefonnummer: String): Boolean {var country: String = "(( \\\\ + | 00) ([1-9] | [1-9] [0-9] | [1-9] [0-9] {2}))? "; Var num: String = "([0-9] {3,10})"; telefonnummer = phoneNumber.match (/[\\ + \\ d] /g) .join (''); Var telefon: RegExp = new RegExp ("^" + country + num + "$"); returnere phone.test (telefonnummer);} 
 Forklaring 
 
 Var protokoll: String = "(http: \\ /\\ /| ftp: \\ /\\ /)?"; 
 Var num: String = "([0-9] {3,10})"; 
 Telefonnummer = phoneNumber.match (/[\\ + \\ d] /g) .join (''); 
 Regular Expression er et uttrykk som brukes for å sjekke om telefonnummeret er laget av en landkode og et lokalt nummer: 
 Var telefon: RegExp = new RegExp ("^" + country + num + "$"); 
 
 
 Trinn 13: Telefonnummer Implementering 
 
 
 
 Trinn 15:. ISBN-10 Sjekk 
 
 Kode 
 
 klasse rett etter  checkPhoneNumber 
 metode: 
 offentlig funksjon validateISBN10 (ISBN10: String): Boolean {ISBN10 = isbn10.replace (/[-] /g, ''); if (isbn10.length = 10!) {return false; } else {var gyldig: Boolean; Var vekter: Array = [10, 9, 8, 7, 6, 5, 4, 3, 2]; Var sifre: Array = isbn10.split (''); Var kontroll: String = digits.pop (); Var resultat: uint = 0; for (var i: UINT = 0, jeg < 9; i ++) {siffer [i] = sifre [i] * vekter [i]; resultat + = sifre [i]; } Resultat = (resultat% 11 == 0) 0: (11 - Resultatet% 11); bryteren (resultat) {case 10: gyldig = (control.toLowerCase () == 'x'); gå i stykker; standard: gyldig = kontroll == String (resultat); gå i stykker; } Returnere gyldig; }} 
 Forklaring 
 
 ISBN10 = isbn10.replace (/[-] /g, ''); if (isbn10.length = 10) {return false;} 
 den variable  gyldige 
 lagrer gyldigheten av antall og  vekter 
 er en matrise med vektene av sifre: 
 Var gyldig: boolsk; Var vekter: Array = [10, 9, 8, 7, 6, 5, 4, 3, 2]; 
 matrise vi lagrer sifrene i nummeret og pakke det siste tegnet som er kontroll karakter og lagre den i  kontroll 
 variabel.  resultere 
 variabel vil lagre resultatet av sjekken sum: 
 Var sifre: Array = isbn10.split (''); Var kontroll: String = digits.pop (); Var resultat: uint = 0; 
 array med den tilsvarende vekt og lagre summen av disse multiplikasjoner: 
 for (var i: uint = 0, jeg < 9; i ++) {siffer [i] = sifre [i] * vekter [i]; Resultatet + = sifre [i];} 
 resultat = (resultat 11% == 0) 0: (11 - resultatet? % 11); 
. Hvis betingelsen er sann verdi1 vil bli gitt til den variable ellers vil motta verdi2. 
 
 variabel. Hvis det er 10 da kontrollen tegnet må være "x" annet resultatet må samsvare med tilsvarende siffer: 
 bryteren (resultat) {case 10: gyldig = (control.toLowerCase () == 'x'); gå i stykker; standard: gyldig = kontroll == String (resultat); break;} 
 
 
 Trinn 16:. ISBN-10 Gjennomføring 
 
 
 Trinn 18: ISBN-13 Sjekk 
 
 Kode 
 
 klasse rett etter  validateISBN10 
 metode: 
 offentlig funksjon validateISBN13 (ISBN13: String) : Boolske {var sifre: Array = isbn13.match (/\\ d /g); Var kontroll: uint = digits.pop (); Var resultat: UINT; Var vekt: UINT; if (! digits.length = 12) {return false; } else {for (var i: uint = 0; i < 12; i ++) {vekt = (i% 2 == 0) 1: 3; siffer [i] = sifre [i] * vekt; resultat + = sifre [i]; } Resultat = (resultat% 10 == 0) 0: (10 - Resultatet% 10); returnere (resultat == kontroll); }} 
 Forklaring 
 
 matrise inneholder sifrene i nummeret. Vi gjør dette ved å trekke ut tallene fra våre tall med  matche 
 metoden i String-klassen. Etter at vi lagrer kontrollsiffer i  kontroll 
 variabel ved å trekke ut det siste elementet i sifre matrise: 
 Var sifre: Array = isbn13.match (/\\ d /g); Var kontroll: uint = digits.pop (); 
 variabel vil holde nåværende vekt av et siffer og  resultere 
 variabel vil holde resultatet av sjekksum: 
 Var vekt : UINT; Var resultat: uint; 
 
 variabel. Hvis posisjonen til sifferet i rekken er et partall vekten er en annen vekten er 3. Vi gjør dette ved å sjekke resten for delingen av  i BY 2: 
 vekt = ( Jeg% 2 == 0) 1: 3; sifrene [i] = sifre [i] * vekt, resultat + = sifre [i]; 
 resultat = (resultat% 10 == 0) 0: (10 - Resultatet% 10); avkastning (resultat == kontroll); 
 
 
 Trinn 19:. ISBN-13 Gjennomføring 
 
 tilfelle ISBNField.input_txt: gyldig = validator.validateISBN10 (input) || validator.validateISBN13 (input); bryte; 
 
 
 
 Trinn 20:. IBAN Struktur 
 
 
 To bokstaver (store bokstaver) som representerer landet 
 
 En sjekknummer består av to siffer som strekker seg fra 00 til 99 
 
 Fire bokstaver (store bokstaver) som representerer banken som utstedte antall 
 
 Et kontonummer ulike lengder avhengig av land og bank 
 
 Validerings Algoritme: 
 
 
 Vi strippe antall plasser. 
 
 De fire første tegnene i antall (country tegn og kontrollsiffer) er flyttet til baksiden av nummeret. 
 
 Vi konverterer alle alfabetisk tegn i tall som så: 
 A = 10, B = 11, C = 12, ..., Z = 35. 
 
 Vi beregne resten av delingen av 97. 
 
 
 
 
 
 Trinn 21:. IBAN Sjekk 
 
 Kode 
 
 metode: 
 offentlig funksjon validateIBAN (IBAN: String): boolske {var nums: Objekt = {A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, G: 16, H: 17, I: 18, J: 19, K: 20, l: 21 M: 22, N: 23, O: 24, P: 25, Q: 26 R: 27 S: 28, T: 29, U: 30, V: 31, B: 32, X: 33, Y : 34, Z: 35}; Var chars: Array = iban.split (''); for (var i: int = 0; i < 4; i ++) {chars.push (chars.shift ()); } Var exp: RegExp = /[a-z] /i; for (var j: int = 0; j < chars.length; j ++) {chars [J] = exp.test (chars [J])? nums [chars [j] .toUpperCase ()]: chars [j]; } IBAN = chars.join (''); avkastning modulus (IBAN, 97) == 1;} 
 Forklaring 
 
 objekt inneholder det tilsvarende tallet for hver karakter: 
 Var nums: Object = {A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, G: 16, H: 17, I: 18, J: 19, K: 20, l: 21, M: 22, N: 23, O: 24, P: 25, Q: 26 R: 27 S: 28, T: 29, U: 30, V: 31, B: 32, X: 33, Y: 34, Z: 35}; 
 matrise inneholder tegnene i antall: 
 Var chars: Array = iban.split (''); 
 for (var i: int = 0; i < 4; i ++) {chars.push (chars.shift ( ));} 
 regulært uttrykk er et enkelt mønster for bokstaver brukes til å teste hvert element i  chars 
 utvalg: 
 Var exp: RegExp = /[ ,,,0],az] /i; 
 utvalg for å se om det er et brev, og endre den til det tilsvarende tall ved hjelp av  nums Anmeldelser objekt: 
 for (var j: int = 0; j < chars.length; j ++) {chars [J] = exp.test (chars [j])? nums [chars [j] .toUpperCase ()]: chars [j];} 
 variabel: 
 iban = chars.join ('');. 
 returnere modulus (iban, 97) == 1; 
 
  Modulus 
 Funksjon 
 
 
 klasse rett etter  validateISBN 
 metode. 
 Offentlig funksjon modulus (largenumber: String, mod: uint): Antall {var tmp: String = largeNumber.substr (0, 10); Var Nummer: String = largeNumber.substr (tmp.length); Var resultat: String; gjøre {resultat = String (Number (tmp)% mod); antall = resultat + nummer, tmp = number.substr (0, 10); antall = number.substr (tmp.length); } While (number.length > 0); returnere Number (tmp)% mod;} 
 variable lagrer en del av det store antallet ved å trekke 10 tegn fra det: 
 Var tmp: String = largeNumber.substr (0, 10 ); 
 variabel representerer det store antallet som blir trimmet av lengden på  tmp 
 streng: 
 Var Nummer: String = largeNumber.substr (tmp.length ); 
 variabel vil selvsagt holde resultatet av divisjonen. I do-while-loop beregne vi resten for delingen av tmp nummer av  mod 
 heltall (dele) og tildele verdi til resultatet: 
 resultat = String (Number (tmp) % mod); 
 nummer = resultat + nummer, tmp = number.substr (0, 10), antall = number.substr (tmp.length); 
 
 
 Trinn 22: IBAN Gjennomføring 
 
 
 
 Trinn 24: kortnummer Sjekk 
 
 Kode 
 
 metode: 
 offentlig funksjon validateCardNumber (ccNumber: String): Boolean {var American: RegExp = /^ (34 | 37) ([0-9] {13}) $ /x; Var dinnersClub: RegExp = /^ (30 [0-5]) ([0-9] {13}) $ /x; Var MasterCard: RegExp = /^ (5 [1-5]) ([0-9] {14}) $ /x; Var visum: RegExp = /^ 4 ([0-9] {12} | [0-9] {15}) $ /x; Var gyldig: Boolean; ccNumber = ccNumber.match (/\\ d /g) .join (''); if (americanExpress.test (ccNumber) || dinnersClub.test (ccNumber) || masterCard.test (ccNumber) || visa.test (ccNumber)) gyldig = true; returnere gyldig & & luhnChecksum (ccNumber);} 
 Forklaring 
 
 vanlige uttrykket definerer mønsteret brukes til å sjekke American Express kort nummer. Dette vil se etter tall som begynner med 34 eller 37 og har 13 flere sifre: 
 Var American: RegExp = /^ (34 | 37) ([0-9] {13}) $ /x; 
 vanlige uttrykket definerer mønsteret brukes til å sjekke Dinners Club kort nummer. Dette mønsteret sjekker om et kredittkortnummer begynner med et tall mellom 300-305 og har 13 flere sifre: 
 Var dinnersClub: RegExp = /^ (30 [0-5]) ([0-9] {13} ) $ /x; 
 vanlig uttrykk definerer patter for MasterCard kortnumre. Dette mønsteret vil sjekke om kredittkortnummer begynner med et tall mellom 51 og 55 og slutter med 14 flere sifre: 
 Var MasterCard: RegExp = /^ (5 [1-5]) ([0-9] {14 }) $ /x; 
 vanlige uttrykket definerer mønsteret for Visa /Visa Electron-kort nummer. Dette vil sjekke om det medfølgende kortnummeret starter med fire og slutter med 12 eller 15 modus sifre: 
 Var visa: RegExp = /^ 4 ([0-9] {12} | [0-9] {15}) $ /x; 
 
 vil holde gyldighetsstatus av kortnummeret. 
 
 ccNumber = ccNumber.match (/\\ d /g) .join (''); 
 if (americanExpress.test (ccNumber) || dinnersClub.test (ccNumber) || masterCard.test (ccNumber) || visa.test (ccNumber)) gyldig = true; 
 
 Den Luhn Algoritmen 
 
 metode i vår  Validator 
 Klasse: 
 offentlig funksjon luhnChecksum (antall: String): boolske {var sifre: Array = number.split (''); Var start: uint = (number.length% 2 == 0)? 0: 1; Var sum: int; while (starte < digits.length) {sifre [start] = uint (sifre [start]) * 2; start + = 2; } Siffer = digits.join ('') split. (''); for (var i: uint = 0; i < digits.length, jeg ++) {sum + = uint (sifre [i]); } Avkastning (sum% 10 == 0);} 
 variabelen inneholder sifrene i nummeret.  start 
 variabelen brukes til å definere hvor sifret å starte dobling (dette er representert ved indeks sifre array).  sum 
 variabel holder den totale summen. Vi bruker den mens loop å doble hver andre siffer i rekken. Vi også legge til 2 til  start til variabel for å hoppe på alle andre siffer i rekken: 
 mens (start < digits.length) {sifre [start] = uint (sifre [start]) * 2; starte + = 2;} 
 matrise til en streng og dele den på nytt inn i en matrise. Vi gjør dette fordi hvis doblet tallene er større enn 9 må vi oppsummere sifrene (f.eks for 12 gjør vi 1 + 2): '. Split 
 siffer = digits.join (') (''); 
 for (var i: uint = 0; i < digits.length, jeg ++) {sum + = uint (sifre [i]);} 
 returnere (sum% 10 == 0); 
 
 Trinn 25: kortnummer Implementering 
 
 For mer detaljerte instruksjoner kan du se trinn 4. 
 
, lage en ny forekomst av  TextBox 
 filmklipp og gi det en forekomst navn av  cardNumberField 
 
 
 case cardNumberField.input_txt: gyldig = validator.validateCreditCardNumber (input); break;. 
 TextBox som et kortnummer ved hjelp av  validator 
 forekomst av  Validator 
 klasse 
 < p> Test filmen, og skriv en kort nummer nummer i tekstfeltet merket med "kortnummer" 
 
 
 Final kode 
 
 pakken {public class Validator {offentlig funksjon Validator () {trace ('Validator opprettet'); } /** * Validerer en dato i disse to formater: * * DD MM ÅÅÅÅ * MM DD YYYY * * De gyldige separatorer er bindestrek "-", prikk, foran skråstrek "/" og plass "" ".". * *param Dato Datoen skal valideres. *return Returnerer sann hvis datoen er gyldig eller usann ellers. * /Public funksjon checkDate (dato: String): Boolean {var måneden: String = "(0 [1-9] | 1 [012]?)"; Var dagen: String = "(0 [1-9] | [12] [0-9] | 3 [01]?)"; Var år: String = "([1-9] [0-9] {3})"; Var separator: String = "([. \\ /-] {1})"; Var usDate: RegExp = new RegExp ("^" + måned + separator + dag + "\\\\ 2" + år + "$"); Var ukDate: RegExp = new RegExp ("^" + dag + separator + måned + "\\\\ 2" + år + "$"); avkastning (usDate.test (dato) || ukDate.test (dato) til stede:? false); } /** * Validerer en e-postadresse. Adressen skal ha følgende * format: * * [user] @ [domenenavn] [domain_extension] * *param emailAddress *return Returnerer sann hvis adressen er gyldig eller usann ellers.. * /Public funksjon checkEmailAddress (emailAddress: String): Boolean {var adresse: String = "([a-Z0-9 ._-] +)"; Var domenenavn: String = "([a-Z0-9 .-] +)"; Var domainExt: String = "(com | net | org | info | tv | mobi | museum | gov | biz | tlf | navn | edu | asia | reise | pro)"; Var epost: RegExp = new RegExp ("^" + adresse + "@" + domenenavn + "\\\\.» + domainExt + "$", "i"); returnere email.test (emailAddress); } /** * Validerer en nettadresse. Adressen skal ha følgende * format: * * [protokoll: //(valgfritt)] [domenenavn] [domain_extension] * *param adresse Webadressen som skal kontrolleres.. *return Returnerer sann hvis adressen er gyldig eller usann ellers. * /Public funksjon checkWebAddress (adresse: String): Boolean {var protokollen: String = "(? Http: \\ /\\ /| ftp: \\ /\\ /)?"; Var domenenavn: String = "([a-Z0-9 .-] {2})"; Var domainExt: String = "(com | net | org | info | tv | mobi | museum | gov | biz | tlf | navn | edu | asia | reise | pro)"; Var nettet: RegExp = new RegExp ('^' + protokoll + + domenenavn + "\\." + domainExt + '$', "i" '?'); returnere web.test (adresse); } /** * Validerer et telefonnummer. Telefonnummeret skal ha følgende * format: * * [country (valgfritt)] [XXX] [YYY] [ZZZZ] * * skilleark mellom X, Y og Z er valgfrie. * Gyldige separatorer er bindestrek "-", punktum "." og space "". * *param Telefonnummer Telefonnummeret som skal kontrolleres. *return Returnerer sann hvis antall er gyldig eller usann ellers. * /Public funksjon checkPhoneNumber (telefonnummer: String): Boolean {var country: String = "((\\\\ + | 00) ([1-9] | [1-9] [0-9] | [1-9 ] [0-9] {2})) "; Var num: String = "([0-9] {3,10})"; telefonnummer = phoneNumber.match (/[\\ + \\ d] /g) .join (''); Var telefon: RegExp = new RegExp ("^" + country + num + "$"); returnere phone.test (telefonnummer); } /** * Sjekker om en ISBN-10 nummer passerer sjekksummen. * *param ISBN10 Den ISBN-10 nummer for å få den godkjent. *return Returnerer sann hvis antall er gyldig eller usann ellers. * /Public funksjon validateISBN10 (ISBN10: String): Boolean {ISBN10 = isbn10.replace (/[-] /g, ''); if (isbn10.length = 10!) {return false; } else {var gyldig: Boolean; Var vekter: Array = [10, 9, 8, 7, 6, 5, 4, 3, 2]; Var sifre: Array = isbn10.split (''); Var kontroll: String = digits.pop (); Var resultat: uint = 0; gå i stykker; gå i stykker;

