Avatar billede dr_chaos Nybegynder
02. december 2003 - 14:35 Der er 16 kommentarer og
1 løsning

Tjekke om der er mindst 2 tal i et brugernavn?

Hvordan kan dette gøres nemmest så det passer ind i den eksisterende kode jeg har:
Det skal helst ligge i funktionen validering.
<html>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Cache-Control" content="no-store">
<head>
<script type="text/javascript">
<!-- Dette script og mange flere -->
<!-- findes hos http://www.html.dk -->
<!-- Start

function validering()
  {
  error = 0;
    if(document.forms[0].brugernavn.value == '') 
  {       
    alert('Du skal skrive dit brugernavn!');
    document.forms[0].brugernavn.focus();
  error = 1;
  }
    if (document.forms[0].brugernavn.value.length < 6) {
    alert("Dit brugernavn skal bestå af mindst 6 tegn!")
    document.forms[0].brugernavn.focus();
    error = 1;
  }
  if(document.forms[0].Fornavn.value == '') 
  {       
    alert('Du skal skrive dit fornavn!');
    document.forms[0].Fornavn.focus();
  error = 1;
  }
  if(document.forms[0].Efternavn.value == '') {
      alert('Du skal skrive dit efternavn');
      document.forms[0].Efternavn.focus();
      error = 1;
  }
  if(document.forms[0].Adresse.value == '') {
      alert('Du skal skrive din adresse');
      document.forms[0].Adresse.focus();
      error = 1;
  }
    if(document.forms[0].Postnr.value == '') {
      alert('Du skal skrive dit postnummer');
      document.forms[0].Postnr.focus();
      error = 1;
  }
      if(document.forms[0].password.value == '') {
      alert('Du skal skrive et password');
      document.forms[0].password.focus();
      error = 1;
  }
  if (document.forms[0].password.value.length < 5) {
    alert("Dit password skal bestå af mindst 5 tegn!")
    document.forms[0].password.focus();
    error = 1;
  }
    if(document.forms[0].password1.value == '') {
      alert('Du skal gentage dit password');
      document.forms[0].password1.focus();
      error = 1;
  }
  placering=0;
  tekst=(document.forms[0].Email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Der skal stå en e-post adresse i tekst feltet");
    error = 1;
  }
  else{
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Der må ikke være mellemrum i adressen");
      error = 1;
    }
    else{
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Der er ulovlige tegn i adressen. Må ikke indeholde: æ ø å Æ Ø Å , ;");
        error = 1;
      }
    else{
      if (placering<1 || tekst.length<=(placering+1)){
        alert ("e-post adressen er forkert - forsøg igen");
        error = 1;
      }
    }
   
  }
}
if(error == 0)
document.forms[0].submit();   
}

// Slut -->
</script>


</head>
<body>
<form  method=post action= "brugeroprettet.asp" name=form ID="Form1" onsubmit="validering();return false;">
    <table ID="Table1">
        <tr>
            <td width="200">Brugernavn:</td>
            <td width="200"><input type="text" name="brugernavn" maxlength="50" ID="Text11"></td>
        </tr>

        <tr>
            <td width="200">Fornavn:</td>
            <td width="200"><input type="text" name="Fornavn" maxlength="50" ID="Text1"></td>
        </tr>
        <tr>
            <td>Efternavn:</td>
            <td><input type="text" name="Efternavn" maxlength="50" ID="Text2"></td>
        </tr>
        <tr>
            <td>Adresse:</td>
            <td><input type="text" name="Adresse" maxlength="50" ID="Text3"></td>
        </tr>
        <tr>
            <td>Postnr:</td>
            <td><input type="text" name="Postnr" maxlength="4" ID="Text4"></td>
        </tr>
        <tr>
            <td>By:</td>
            <td><input type="text" name="By" maxlength="50" ID="Text5"></td>
        </tr>
        <tr>
            <td>Fødselsdato:</td>
            <td><input type="text" name="FoedseldatoDD" size="1" maxlength="2" ID="Text6">-<input type="text" name="FoedseldatoMM" size="1" maxlength="2" ID="Text7">-<input type="text" name="FoedseldatoAAAA" size="2" maxlength="4" ID="Text8"></td>
        </tr>
        <tr>
            <td>Køn:</td>
            <td><input type="radio" name="Koen" value="1" checked ID="Radio1">Mand<input type="radio" name="Koen" value="2" ID="Radio2">Kvinde</td>
        </tr>
        <tr>
            <td>Firma:</td>
            <td><input type="text" name="Firma" maxlength="50" ID="Text9"></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type="text" name="Email" maxlength="255" ID="Text10"></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" name="password" maxlength="50" ID="Password1"></td>
        </tr>
        <tr>
            <td>Gentag password:</td>
            <td><input type="password" name="password1" maxlength="50" ID="Password2"></td>
        </tr>
    <tr
    <td><input type="hidden" name="Brugerniveau" value="1" ID="Hidden1"></td>
    <td><input onMouseOver="this.src='opretned.jpg'" onMouseOut="this.src='opretop.jpg'" id="button1" type="image" name="Image5" border="0" src="opretop.jpg"> </td>
    </tr>
</table>
</form>


</body>
</html>
Avatar billede roenving Novice
02. december 2003 - 14:50 #1
var reg = /\d/g;
    if (document.forms[0].brugernavn.value.match(reg).length < 2) {
    alert("Dit brugernavn skal mindst indeholde 2 cifre!")
    document.forms[0].brugernavn.select();
    document.forms[0].brugernavn.focus();
    return false;
}
Avatar billede dr_chaos Nybegynder
02. december 2003 - 21:01 #2
jeg kan ikke få det til at virke hvordan ville du sætte det ind på siden ?
Avatar billede roenving Novice
03. december 2003 - 00:17 #3
function validering()
  {
  error = 0;
    if(document.forms[0].brugernavn.value == '') 
  {       
    alert('Du skal skrive dit brugernavn!');
    document.forms[0].brugernavn.focus();
  error = 1;
  }
    if (document.forms[0].brugernavn.value.length < 6) {
    alert("Dit brugernavn skal bestå af mindst 6 tegn!")
    document.forms[0].brugernavn.focus();
    error = 1;
  }
    var reg = /\d/g;
    if (document.forms[0].brugernavn.value.match(reg).length < 2) {
    alert("Dit brugernavn skal mindst indeholde 2 cifre!")
    document.forms[0].brugernavn.select();
    document.forms[0].brugernavn.focus();
    error = 1;
}

-- i øvrigt ville det blive meget nemmere at overskue, hvis du kaldte med:

<form ... onsubmit="return validering(this)">

og lavede funktionen sådan:

function validering(f)
  {
    if(fbrugernavn.value == '') 
  {       
    alert('Du skal skrive dit brugernavn!');
    f.brugernavn.select();
    f.brugernavn.focus();
    return false;
  }
    if (fbrugernavn.value.length < 6) {
    alert("Dit brugernavn skal bestå af mindst 6 tegn!")
    f.brugernavn.select();
    f.brugernavn.focus();
    return false;
  }
    var reg = /\d/g;
    if (f.brugernavn.value.match(reg).length < 2) {
    alert("Dit brugernavn skal mindst indeholde 2 cifre!")
    f.brugernavn.select();
    f.brugernavn.focus();
    return false;
  }

-- og sluttede af med en:

return true;
Avatar billede roenving Novice
03. december 2003 - 00:49 #4
Forøvrigt vil en fuldstændig gennemskrivning resultere i følgende:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<title>Test input-felter</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<script type="text/javascript">
function validering(f){
        var reg1 = /^\w{6,}$/;
        var reg = /\d/g;
        if (!f.brugernavn.value.match(reg1)||2>f.brugernavn.value.match(reg).length) {
        alert("Dit brugernavn skal bestå af mindst 6 tegn ...\n-- eller skal mindst indeholde 2 cifre!")
        f.brugernavn.select();
        f.brugernavn.focus();
        return false;
    }
    if(f.Fornavn.value == ''){               
        alert('Du skal skrive dit fornavn!');
        f.Fornavn.select();
        f.Fornavn.focus();
        return false;
    }
    if(f.Efternavn.value == ''){
        alert('Du skal skrive dit efternavn');
        f.Efternavn.select();
        f.Efternavn.focus();
        return false;
    }
    if(f.Adresse.value == ''){
        alert('Du skal skrive din adresse');
        f.Adresse.select();
        f.Adresse.focus();
        return false;
    }
        reg = /\d{3}/g;
        if(!f.Postnr.value.match(reg)){
        alert('Du skal skrive dit postnummer');
        f.Postnr.select();
        f.Postnr.focus();
        return false;
    }
        reg = /^\w{1}[\w\.\-]*@\w{1}[\w\-]*\.\w{2}\w*$/i;
        tekst=f.Email.value.toLowerCase();
        if (!reg.test(tekst)){
        alert ("Der skal stå en gyldig e-mail adresse i Email-feltet");
        f.Email.select();
        f.Email.focus();
        return false;
    }
        reg = /\w{5}/
        if(!f.password.value.match(reg)) {
        alert('Du skal skrive et password på mindst 5 tegn');
        f.password.select();
        f.password.focus();
        return false;
    }
        if(f.password1.value!=f.password.value) {
        alert('Du skal gentage dit password fuldstændigt nøjagtigt');
        f.password1.select();
        f.password1.focus();
        return false;
    }
    return true;
}
</script>


</head>
<body>
<form    method=post action="brugeroprettet.asp" name="Form1" ID="Form1" onsubmit="return validering(this);">
        <table ID="Table1">
                <tr>
                        <td width="200">Brugernavn:</td>
                        <td width="200"><input type="text" name="brugernavn" maxlength="50" ID="Text11"></td>
                </tr>

                <tr>
                        <td width="200">Fornavn:</td>
                        <td width="200"><input type="text" name="Fornavn" maxlength="50" ID="Text1"></td>
                </tr>
                <tr>
                        <td>Efternavn:</td>
                        <td><input type="text" name="Efternavn" maxlength="50" ID="Text2"></td>
                </tr>
                <tr>
                        <td>Adresse:</td>
                        <td><input type="text" name="Adresse" maxlength="50" ID="Text3"></td>
                </tr>
                <tr>
                        <td>Postnr:</td>
                        <td><input type="text" name="Postnr" maxlength="4" ID="Text4"></td>
                </tr>
                <tr>
                        <td>By:</td>
                        <td><input type="text" name="By" maxlength="50" ID="Text5"></td>
                </tr>
                <tr>
                        <td>Fødselsdato:</td>
                        <td><input type="text" name="FoedseldatoDD" size="1" maxlength="2" ID="Text6">-<input type="text" name="FoedseldatoMM" size="1" maxlength="2" ID="Text7">-<input type="text" name="FoedseldatoAAAA" size="2" maxlength="4" ID="Text8"></td>
                </tr>
                <tr>
                        <td>Køn:</td>
                        <td><input type="radio" name="Koen" value="1" checked ID="Radio1">Mand<input type="radio" name="Koen" value="2" ID="Radio2">Kvinde</td>
                </tr>
                <tr>
                        <td>Firma:</td>
                        <td><input type="text" name="Firma" maxlength="50" ID="Text9"></td>
                </tr>
                <tr>
                        <td>Email:</td>
                        <td><input type="text" name="Email" maxlength="255" ID="Text10"></td>
                </tr>
                <tr>
                        <td>Password:</td>
                        <td><input type="password" name="password" maxlength="50" ID="Password1"></td>
                </tr>
                <tr>
                        <td>Gentag password:</td>
                        <td><input type="password" name="password1" maxlength="50" ID="Password2"></td>
                </tr>
        <tr>
        <td><input type="hidden" name="Brugerniveau" value="1" ID="Hidden1"></td>
        <td><input onMouseOver="this.src='opretned.jpg'" onMouseOut="this.src='opretop.jpg'" id="button1" type="image" name="Image5" border="0" src="opretop.jpg"> </td>
        </tr>
</table>
</form>


</body>
</html>
Avatar billede dr_chaos Nybegynder
07. december 2003 - 21:19 #5
jeg ville meget gerne bruge den du skrevet op men problemet er at den når til der hvor den tjekker antallet af tal og så sender den alligevel informationerne videre til næste side.
Dette sker hvis jeg indtaster noget i brugernavn feltet nogen ideer ??
Avatar billede dr_chaos Nybegynder
07. december 2003 - 21:26 #6
Det sker hvis jeg indtaster mere en 6 bogstaver.
Det er som om den så slet ikke tjekker resten af felterne.
Fordi den sender info videre selv om alle andre felter er tomme.
Avatar billede roenving Novice
07. december 2003 - 21:33 #7
Du får vel en fejlmelding (som du måske har undertrykt -- IEs standard-indstilling !-)

Udskift linjen til:

    if (!f.brugernavn.value.match(reg1)||!f.brugernavn.value.match(reg)||2>f.brugernavn.value.match(reg).length) {
Avatar billede dr_chaos Nybegynder
07. december 2003 - 21:38 #8
smid lige et svar så får du 80 points :)
det virker mange tak.
Avatar billede roenving Novice
07. december 2003 - 21:43 #9
Velbekomme '-)
Avatar billede roenving Novice
07. december 2003 - 22:07 #10
-- og tak for points ;~}
Avatar billede erikjacobsen Ekspert
07. december 2003 - 22:19 #11
Det med de 2 cifre burde kunne klares lidt mere elegant med
  var reg = /\d.*\d/g;
plus en mindre ændring senere i koden
Avatar billede erikjacobsen Ekspert
07. december 2003 - 22:20 #12
faktisk bare
  var reg = /\d.*\d/;
Avatar billede roenving Novice
07. december 2003 - 22:34 #13
Kan det gøres simplere end at tælle antallet af matches på /\d/g ?-)
Avatar billede erikjacobsen Ekspert
07. december 2003 - 22:46 #14
det er jo det jeg siger :)
Avatar billede roenving Novice
07. december 2003 - 22:54 #15
Mener du:
        var reg1 = /^\w{6,}$/;
        var reg = /\d.*\d/g;
        if (!f.brugernavn.value.match(reg1)||!f.brugernavn.value.match(reg)) {

-- tjah, den havde jeg ikke tænkt på !o]

Ved at tælle match på /\d/g (som jeg gør her !-) skal der jo også tages højde for, at .match kan returnere null, så der ikke er et array at tælle på ...
Avatar billede erikjacobsen Ekspert
07. december 2003 - 23:08 #16
ja - uden g'et
Avatar billede roenving Novice
07. december 2003 - 23:13 #17
-- ja, jeg opdagede også, at jeg havde glemt at fjerne det, men det var ikke alene grund nok til et indlæg ...

-- men den løsning, jeg gav udsprang jo også af et spørgsmål, som gik på et antal, så jeg nåede ikke omkring den tanke, at så længe det bare var to, var det jo simplere at angive direkte !-)

-- og man kan så sige, at den type løsning, jeg gav, er mere direkte skalerbar ...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB