Avatar billede sthen Nybegynder
08. januar 2005 - 16:03 Der er 3 kommentarer og
1 løsning

Oversæt fra Php-tjek til JavaScript

Jeg har en formular, hvori der bl.a. er to felter som jeg gerne vil have tjekket v.hj.a. JavaScript efter samme system som f.eks. dette:

<script language="JavaScript">
  function giroCheck(f){
    if (f.fornavn.value == ""){
      alert("Du glemte at skrive kundens fornavn");
      f.fornavn.focus();
      return false;
    }
    if (!f.kundenr.value.match(/^\d{10}$/)){
      alert("Kundenummer skal bestå af 10 cifre ");
      f.kundenr.focus()
      return false;
    }
  return true;
  }
</script>

- altså felterne skal tjekkes, og ved fejlindtastning skal der komme en alert-box med fejlangivelsen.

De to felter jeg har problemer med at tjekke, vil ved kontrol i Php-stil hedde:

if (!eregi("^([a-z]{3})([0-9])([.,])([0-9]{2})-([0-9]){2}([.,])([0-9])$", $_POST['varenr']))
{
echo 'Varenummer findes ikke';
}

elseif (!eregi("^([+-]{1})([0-9]{1,2})([.,])([0-9]{2})$", $_POST['var1']))
{
echo 'Styrken ikke korrekt udfyldt';
}

- Tak om du kan "oversætte" dette til JavaScript.
Avatar billede roenving Novice
09. januar 2005 - 14:06 #1
-- lige en enkelt kommentar først til dine regexps, for du bruger bl.a. et sted {1}, som altid vil være overflødig, og så kan du ligesågodt bruge \d i stedet for [0-9], da de betyder præcis det samme !-)

Desuden har du lavet en masse overflødige grupperinger () ...

Så det må blive:

<script type="text/javascript">
  function giroCheck(f){
    if (f.fornavn.value == ""){
      alert("Du glemte at skrive kundens fornavn");
      f.fornavn.focus();
      return false;
    }
    if (!f.kundenr.value.match(/^\d{10}$/)){
      alert("Kundenummer skal bestå af 10 cifre ");
      f.kundenr.focus()
      return false;
    }
  return true;
  }
  function vareCheck(f){
    if (!/^[a-z]{3}\d[.,]\d{2}-\d{2}[.,]\d$/i.test(f.varenr.value)){
      alert('Varenummer findes ikke');
      f.varenr.focus();
      return false;
    }
    if (!/^[+-]\d{1,2}[.,]\d{2}$/i.test(f.var1.value)){
      alert('Styrken ikke korrekt udfyldt');
      f.var1.focus()
      return false;
    }
  return true;
  }
</script>
Avatar billede sthen Nybegynder
09. januar 2005 - 14:52 #2
Kære roenving

Jeg er godt klar over at jeg ikke er Nordeuropasmester i at lave RegExps, men det virkede da efter hensigten.
Men det du har lavet til mig er fuldstændig som ønsket (som sædvanlig).

Tak for hjælpen.
Læg et svar og jeg iler med points.

/sthen
c",)
Avatar billede roenving Novice
09. januar 2005 - 16:11 #3
Velbekomme '-)
Avatar billede roenving Novice
11. januar 2005 - 17:44 #4
-- og tak for point ;~}
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