Avatar billede dmg Nybegynder
22. november 2007 - 12:22 Der er 12 kommentarer og
2 løsninger

Tjekke streng for tal plus gåseøje

Hej Experts,

Jeg modtager et format der ser sådan ud: tal"
eks: 14"
Nu vil jeg så via en function tjekke om det er et tal med et " gåseøje bagefter. Er det muligt at strikke sammen?

if(det_er_et_tal)
  if(tallet har en gåseøje tegn bagefter ")
    return alert("det virker")
  else
    return alert("whatevers")

Håber i kan hjælpe,
Tak så længe
Avatar billede w13 Novice
22. november 2007 - 16:38 #1
Det kan sikkert gøres smartere med noget reg.exp., men ville umiddelbart gøre sådan her, hvis du har tallet i strTal:
------------------------------------------------------
if(strTal.lastIndexOf('"')==0&&(parseInt(strTal)||parseInt(strTal)===0){
  return alert("Det virker")
}else{
  return alert("Whatevers")
}
------------------------------------------------------
Det er dog meget utestet.
Avatar billede w13 Novice
22. november 2007 - 16:38 #2
Wups, manglede en parentes:
---------------------------
if(strTal.lastIndexOf('"')==0&&(parseInt(strTal)||parseInt(strTal)===0)){
  return alert("Det virker")
}else{
  return alert("Whatevers")
}
Avatar billede w13 Novice
22. november 2007 - 16:40 #3
Ahr, jeg glemte lige lidt.
--------------------------------
if(strTal.lastIndexOf('"')==0&&(parseInt(strTal.substring(0,strTal.length))||parseInt(strTal.substring(0,strTal.length))===0)){
  return alert("Det virker")
}else{
  return alert("Whatevers")
}
Avatar billede w13 Novice
22. november 2007 - 16:41 #4
Alle gode gange 4..

Begge steder, hvor der står strTal.length skal det være strTal.length-1
Avatar billede dmg Nybegynder
24. november 2007 - 07:02 #5
Hej w13,

Mange tak for den gode indstats, det ser spændende ud, men jeg kan ik rigtigt få det til at virke:

Her er min kode:


<html>

<head>
  <title></title>
  <script type="text/javascript" language="javascript">

  function test(strTal)
  {
  if(strTal.lastIndexOf('"') == 0 && (parseInt(strTal.substring(0,strTal.length-1)) || parseInt(strTal.substring(0,strTal.length-1))===0))
  {
    return alert("Det virker")
  }
  else
  {
    return alert("Whatevers")
  }
  }
  </script>

  </head>

<body>

<script language="javascript">
test('14"');
</script>

</body>

</html>
Avatar billede dmg Nybegynder
24. november 2007 - 07:04 #6
Jeg modtager alert boxen "whatevers" selvom formatet er sat ind rigtigt: 14" du er tæt på tror jeg ;-)
Avatar billede w13 Novice
24. november 2007 - 07:27 #7
Prøv de forskellige betingelser hver for sig i linjen:
  if(strTal.lastIndexOf('"') == 0 && (parseInt(strTal.substring(0,strTal.length-1)) || parseInt(strTal.substring(0,strTal.length-1))===0))


Så vi finder ud af, hvor den går galt.
Avatar billede w13 Novice
24. november 2007 - 07:34 #8
Altså erstat linjen med blot:

  if(strTal.lastIndexOf('"') == 0)

og se om den godkendes.

Og derefter med:

  if(parseInt(strTal.substring(0,strTal.length-1)))

og se om den godkendes.
Avatar billede roenving Novice
24. november 2007 - 15:57 #9
-- og det er helt rigtigt, at det bliver en hel del lettere og meget mere overskueligt, hvis du laver det med en regExp:

<html>

<head>
  <title></title>
  <script type="text/javascript">
    function test(strTal){
      if(strTal.match(/^\d+"$/)){
        alert("Det virker")
      }else{
        alert("Whatevers")
      }
    }
  </script>

  </head>

<body>

<script language="javascript">
test('14"');
</script>

</body>

</html>
Avatar billede dmg Nybegynder
29. november 2007 - 01:36 #10
Hi Guys!

Sorry jeg ik har skrevet tilbage før. Jeg må jo nok indrømme at roenving's løsning er en hel del bedre, det virker bare perfekt ;-)

Begge gi et svar, så deler jeg points op. Endnu gang mange tak for indsatsen!
Avatar billede w13 Novice
29. november 2007 - 02:07 #11
Okidoke! =)
Avatar billede roenving Novice
29. november 2007 - 16:05 #12
Velbekomme '-)
Avatar billede dmg Nybegynder
29. november 2007 - 18:16 #13
Mange tak for hjælpen
Avatar billede roenving Novice
30. november 2007 - 11:52 #14
-- og jeg takker 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