22. april 2004 - 08:43Der er
20 kommentarer og 2 løsninger
check cprnr med modolus 11
jeg har fundet denne kode til at checke cprnr med:
<% if Request.Form("cprnr") = "" then %> <form action="#" method="post"> <input name="cprnr" type="text" size="10" maxlength="10"> <input name="knap" type="submit" value="test"> </form> <% else cpr = Request.Form("cprnr") 'Testprogram if (cprOk(cpr)) then response.write("Gyldigt") else response.write("IKKE Gyldigt") end if end if 'Rutinen der tjekker om CPR nummeret er gyldigt. function cprOK(cpr) if len(cpr) = 10 then if IsNumeric(cpr) = true then a = mid(cpr, 1, 1) b = mid(cpr, 2, 1) c = mid(cpr, 3, 1) d = mid(cpr, 4, 1) e = mid(cpr, 5, 1) f = mid(cpr, 6, 1) g = mid(cpr, 7, 1) h = mid(cpr, 8, 1) i = mid(cpr, 9, 1) j = mid(cpr, 10, 1) if ((4*a + 3*b + 2*c + 7*d + 6*e + 5*f + 4*g + 3*h + 2*i + j) mod 11 = 0) then cprOK = true else cprOK = false end if end if else cprOK = false end if end function %>
Hvordan kan jeg tilpasse denne kode så den kommer til at virke for mig? Her er koden som jeg skal have modolus 11 indsat i:
Jeg har disse valideringsregler i forvejen. Den med cprnr skal så erstattes af modulus 11
<script type="text/javascript">
function valider(f){ if(!f.cprnr.value.match(/^\d+$/)){//i stedet for + kan du angive f.eks. {10} = præcis 10 cifre alert ("Der skal angives et cprnr"); f.cprnr.select(); f.cprnr.focus(); return false; } var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var regexp = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2}["+t+"\\.\\-\\/]*$","i"); if (!regexp.test(f.Email.value)){ alert ("Der skal stå en gyldig e-mail adresse"); f.Email.select(); f.Email.focus(); return false; } return true; } </script>
Hvis der er en anden kode som bedre egner sig er jeg åben over for det også. Jeg håber at der er nogen der kan hjælpe
if Request.Form("cprnr") = "" then Response.redirect("default.asp") else cpr = Request.Form("cprnr") 'Testprogram if (cprOk(cpr)) then response.write("Cpr Gyldigt" & "<br>") else response.write("Cpr IKKE Gyldigt" & "<br>") end if end if
if Request.Form("email") = "" then Response.redirect("default.asp") else email = Request.Form("email") 'Testprogram if (validemail(email)) then response.write("email Gyldig" & "<br>") else response.write("email IKKE Gyldig" & "<br>") end if end if
End if
'Rutinen der tjekker om CPR nummeret er gyldigt. function cprOK(cpr) if len(cpr) = 10 then if IsNumeric(cpr) = true then a = mid(cpr, 1, 1) b = mid(cpr, 2, 1) c = mid(cpr, 3, 1) d = mid(cpr, 4, 1) e = mid(cpr, 5, 1) f = mid(cpr, 6, 1) g = mid(cpr, 7, 1) h = mid(cpr, 8, 1) i = mid(cpr, 9, 1) j = mid(cpr, 10, 1) x = (4*a + 3*b + 2*c + 7*d + 6*e + 5*f + 4*g + 3*h + 2*i + j) mod 11 if ((4*a + 3*b + 2*c + 7*d + 6*e + 5*f + 4*g + 3*h + 2*i + j) mod 11 = 0) then cprOK = true else cprOK = false end if end if else cprOK = false end if end function
'kontroller email 'kan sikker forbedres så den checker mod ugyldige tegn også function ValidEmail(email)
dim checkTld dim upper
email=trim(email) validemail = true
if email="" then ' ikke tom validemail = false else
if len(email) < 6 then 'ikke mindre end 6 tegn (x@y.dk) validemail = false end if
if not cbool(instr(email, "@")) then 'mangler abehalen validemail = false end if
if not cbool(instr(email, ".")) then 'mangler mindst et punktum validemail = false else checkTld = split(email, ".") upper = ubound(checkTld)
if (len(checkTld(upper)) < 2) OR (len(checkTld(upper)) > 4)then 'tld kan ikke være kortere end 2 tegn (dk) eller længere end 4 tegn (net,com,org,biz,name) validemail = false end if end if
Øhh er lige lidt nysgerrig... er et cpr-nummer kun gyldigt, hvis det (efter beregning i den formel) er deleligt med 11? -Eller hvordan skal det forstås?
ok, den sidste kode ser fin ud men hvordan i alverden får jeg den koblet på min kode? Den validering jeg har på email virker fint nok, det er mere cprnr som jeg har brug for. Yderligere skal du lægge mærke til at det ikke er en submit knap men en "næste knap" hvorpå dette skal virke. Jeg sender hele min kode, så kan du se om du kan finde ud af det.
<table width="405" height="245" border="1" cellpadding="2" align="center" bordercolorlight="#C0C0C0"> <tr><font size="2">Du kan tilmelde dig elektronisk til et eller flere kurser ved at udfylde nedenstående blanket. Når du har udfyldt samtlige felter klikker du på knappen "næste" for at sikre at de indtastede oplysninger er korrekte. Efterfølgende printer du siden ud og sender formularen.
<br><br>(Den udprintede version er din kvittering for tilmelding)</font><br><br> </tr> <tr>
<table border="0" width="405" bgcolor="white"> <tr> <td width="500" height="478" valign="top"> <p><strong>Generelle adgangsbetingelser:</strong> </p> <p>Mindst to års relevant erhvervsarbejde og opfylder adgangsbetingelser for uddannelsen.</p> <p>For linierne:</p> <ul> <li>International handel og markedsføring</li> <li>Kommunikation og formidling</li> <li>Økonomi og Ressourcestyring</li> <li>Innovation og produktionsoptimering</li> </ul> <p>Gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med <br> studiekompetence svarende til engelsk C og matematik<br> C/erhvervsøkonomi C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C og matematik C/erhvervsøkonomi C</li> <li>En adgangsgivende eksamen med matematik<br> C/erhvervsøkonomi C</li> <li>En relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> </ol> <p>For linien Ledelse gælder følgende:</p> <ol> <li>En relevant erhvervsuddannelse med<br> studiekompetence svarende til engelsk C</li> <li>En relevant grunduddannelse for voksne med engelsk<br> C</li> <li>En adgangsgivende eksamen</li> <li>En anden relevant uddannelse på mindst samme<br> niveau som nr. 1-3</li> <li>Mindst 2 års relevant erhvervserfaring efter gennemført<br> adgangsgivende uddannelse</li> </ol>
<ul> <p> </p> </ul></td>
</tr>
</table>
</center>
<center> <p>Jeg ønsker at gå til eksamen på følgende skole </p></center> <center> <p><select size=1 name=skole> <option value="(Vælg skole på listen)">(Vælg skole på listen)</option> <option value="Niels Brock, København">Niels Brock, København</option> <option value="Ceus, Nykøbing">Ceus, Nykøbing F</option> <option value="Svendborg Handelsskole">Svendborg Handelsskole</option> <option value="Viborg Handelsskole">Viborg Handelsskole</option> <option value="Skanderborg-Odder Handelsskole">Skanderborg-Odder Handelsskole</option> <option value="IBC Kolding">IBC Kolding</option> <option value="Tønder Handelsskole">Tønder Handelsskole</option> <option value="EUC - Nordvestsjælland">EUC - Nordvestsjælland</option> <option value="Grønlands Handelsskole">Grønlands Handelsskole</option> <option value="Udlandet">Udlandet</option> </select> <br>(skolen forbeholder sig retten til at aflyse et hold,<br>såfremt der ikke opnås tilstrækkelig antal tilmeldinger.)<br><br> Jeg ønsker at anvende PC'er ved eksamen <select size=1 name=PC> <option value=Ja>Ja<option value=Nej selected>Nej</option></select> </p></center> <div align=left> <blockquote> <blockquote> <blockquote> <p><strong><center>Det er vigtigt at du allerede ved<br> tilmeldingen beslutter dig for om du<br> ønsker at anvende PC til eksamen.<br> Skolerne har et begrænset antal <br> edb-pladser til rådighed. Hvis du vil<br> bruge PC til eksamen anvendes<br> skolens udstyr. Skolerne anvender<br> Microsoft officepakken. </center></strong> </p> </blockquote></blockquote></blockquote></div>
<center> <p> </p> <table width="405" border="0" cellspacing="0" cellpadding="0"> <tr> <td>Så snart vi har modtaget din tilmelding registreres du som kursist i vores kursusdatabase. Du vil senere få fremsendt et giroindbetalingkort. Efter at vi har registreret din indbetaling og umiddelbart inden kursusstart får du tilsendt et <strong>brugernavn </strong>og <strong>password</strong> der giver adgang til de kurser du har tilmeldt dig.</td> </tr> </table> <p> </p>
Jamen det du skal er at indsætte en validering i dit javascript da der ellers skal laves alt for meget om. Jeg har griffet noget fra http://www.eksperten.dk/spm/465659 og indsat i dit script Jeg er ikke nogen haj til java - mildest talt - så der er ingen garanti for hvordan det virker men jeg tror det gør ;o)
<script type="text/javascript">
function valider(f){ if(!f.cprnr.value.match(/^\d+$/)){//i stedet for + kan du angive f.eks. {10} = præcis 10 cifre alert ("Der skal angives et cprnr"); f.cprnr.select(); f.cprnr.focus();
return false; } var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var regexp = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2}["+t+"\\.\\-\\/]*$","i"); if (!regexp.test(f.Email.value)){ alert ("Der skal stå en gyldig e-mail adresse"); f.Email.select(); f.Email.focus(); return false; } return true; } </script>
var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var regexp = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2}["+t+"\\.\\-\\/]*$","i"); if (!regexp.test(f.Email.value)){ alert ("Der skal stå en gyldig e-mail adresse"); f.Email.select(); f.Email.focus(); return false; } return true; } </script>
var t = "\\wáàãââæåçéèêëìíîïñòóôõöøùúûüýÿ"; var regexp = new RegExp("^["+t+"]["+t+"\\.\\-]*@["+t+"]["+t+"\\.\\-]*\\.["+t+"]{2}["+t+"\\.\\-\\/]*$","i"); if (!regexp.test(f.Email.value)){ alert ("Der skal stå en gyldig e-mail adresse"); f.Email.select(); f.Email.focus(); return false; } return true; }
JUBII!!!! nu virker det. Og Roenving, jeg har lige haft kontakt til udbyderen og jeg får oprettet en https forbindelse. Hvis i begge vil skrive et svar så vil jeg dele pointene, for jeg synes at i begge har gjort det godt. Jeg takker ;)
Og jeg kan nada Java, men er vistnok blandt dem, som ved mest om javascript her på E* ...
For der er milevid forskel på Java og javascript, normalt plejer jeg at påstå, at der er 4 ting, de har tilfælles: j - a - v - a !-)
-- vi kan dog godt kvalificere den yderligere, for javascript har, ligesom java, taget de fleste af de syntaktiske grundregler og visse programmeringsmæssige tænkemåder fra C/C++ og der er derfor på nogle leder en overensstemmelse, men ikke et sammenfald mellem et scripting-sprog og et full-grown programmeringssprog !o]
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.