Avatar billede nidkin Nybegynder
09. juli 2002 - 16:28 Der er 14 kommentarer og
1 løsning

Test en streng for en bestemt character

Jeg har kastet noget kode sammen som skal teste om en bestemt character er i en tekststreng. Jeg får bare en obskur fejl. (efter min mening obskur)
Nu er det også første gang jeg har kastet mig ud i JS programmering, så bær over med mig  ;o)

Koden:

<html>
<head>
<script language="javascript1.2">
function TestChar() {
    strStreng = edtBoks.Value;
    for(i=0; i <= strStreng.Length; i++) {
        if(strStreng.charAt(i)) = 2 {
            alert("der er et 2 tal");
        }
    }
}

function pop(strStreng) {
    alert(pop)
}
</script>
</head>

<body>
  <input type="text" name="edtBoks">
  &nbsp;&nbsp;
  <input type="submit" name="Submit" value="test" onclick="java script:TestChar();">
</body>
</html>
Avatar billede jakoba Nybegynder
09. juli 2002 - 16:48 #1
når du tester skal der bruges == og ikke =.
= er en tildeling af værdi.
desuden ville jeg komme anførselstegn omkrig det 2-tal der sammenlignes med for at understrege at det er bogstavet '2' og ikke det bogstav der har ascii-værdien 2 der menes.

<script language="javascript1.2">
function TestChar() {
    strStreng = edtBoks.Value;
    for(i=0; i <= strStreng.Length; i++) {
        if(strStreng.charAt(i)) == "2" {    // rettet linie
            alert("der er et 2 tal");
        }
    }
}
function pop(strStreng) {
    alert(pop)
}
</script>

mvh JakobA
Avatar billede mikoalngelo Nybegynder
09. juli 2002 - 16:50 #2
skriv:
Du er her : Eksperten : Programmering : Script : JavaScript : Test en streng for en bestemt character :
Test en streng for en bestemt character    15 point fra nidkin
Jeg har kastet noget kode sammen som skal teste om en bestemt character er i en tekststreng. Jeg får bare en obskur fejl. (efter min mening obskur)
Nu er det også første gang jeg har kastet mig ud i JS programmering, så bær over med mig  ;o)

Koden:

<html>
<head>
<script language="javascript1.2">
function TestChar() {
    strStreng = document.f.edtBoks.Value;
    for(i=0; i <= strStreng.length; i++) {
        if(strStreng.charAt(i) == '2') {
            alert("der er et 2 tal");
        }
    }
}

function pop(strStreng) {
    alert(strStreng)
}
</script>
</head>

<body>
  <form name="f">
    <input type="text" name="edtBoks">
  &nbsp;&nbsp;
    <input type="submit" name="Submit" value="test" onclick="java script:TestChar();">
  </form>
</body>
</html>
Avatar billede jakoba Nybegynder
09. juli 2002 - 16:53 #3
ups. overså andre fejl.  attributten length staves altid med lille l.  strStreng.length
ditto med .value. der staves med lille v
testen i forløkken må ikke tillade i == length, kun i < length.
i handlere skal der aldrig skrives java script: det benyttes KUN i href= og i action= attribut-værdier

    strStreng = edtBoks.value;
    for(i=0; i < strStreng.length; i++) {
...
  <input type="submit" name="Submit" value="test" onclick="TestChar();">
Avatar billede nidkin Nybegynder
09. juli 2002 - 16:57 #4
jakoba > den kommer ganske rigitgt ikke frem med en fejl nu, men ej heller min alert box som burde dukke op hvis 2 er i strengen  :(
- Nogle idéer til det?
Avatar billede mikoalngelo Nybegynder
09. juli 2002 - 16:58 #5
<html>
<head>
<script type="text/javascript" language="javascript1.2">
function TestChar() {
    var strStreng = " " + document.f.edtBoks.value;
    var laengde = strStreng.length
    for(i=0; i <= laengde; i++) {
        if(strStreng.charAt(i) == '2') {
            pop("der er et 2 tal (på position " + i + ")");
        }
    }
}

function pop(strStreng) {
    alert(strStreng)
}
</script>
</head>

<body>
  <form name="f">
    <input type="text" name="edtBoks">
  &nbsp;&nbsp;
    <input type="submit" name="Submit" value="test" onclick="java script:TestChar();">
  </form>
</body>
</html>

Så viser den også positionen (den forrige virker ikke)
Avatar billede nidkin Nybegynder
09. juli 2002 - 16:58 #6
heheh
det er godt nok hurtigt at du svarer før jeg har spurgt  *G*
Avatar billede mikoalngelo Nybegynder
09. juli 2002 - 17:00 #7
upsvar
Avatar billede nidkin Nybegynder
09. juli 2002 - 17:09 #8
mikoalngelo > den sidste udgave er helt perfekt  :)
jakoba > takker for hjælpen, men grundet mikoanlngelo's løsning har han fået point'ne, da dit sidste bud også drillede med en Object Expected fejl. Har en idé om at den er galdest for at blive puttet ind i en form, selvom jeg ikke er meget for det  :)
Avatar billede jakoba Nybegynder
09. juli 2002 - 17:11 #9
Den er absolut gladest for at blive lagt i en form :-))
Faktisk er det slet ikke lovlig HTML kode hvis man ikke skriver <form og </form kommandoer omkring sine felter.
Avatar billede mikoalngelo Nybegynder
09. juli 2002 - 17:16 #10
Thx 4 p
Avatar billede vbronx Nybegynder
09. juli 2002 - 17:29 #11
Der er sikkert en grund, men hvorfor ikke bare bruge indexOf('2') istedet for for-løkken?
function TestChar() {
if(document.f.edtBoks.value.indexOf('2')>0)
  pop('der er et 2-tal (på position '
  +(document.f.edtBoks.value.indexOf("2")+1)+')');
}
function pop(strStreng) {
    alert(strStreng)
}
Avatar billede nidkin Nybegynder
09. juli 2002 - 23:09 #12
jakoba > Hvorfor jeg ikke lavede formen, er fordi jeg ikke gad at den reloader sig selv, og der kommer den "grimme" url.
Men der hvor jeg skal bruge scriptet, der kommer den alligevel til at ligge i en form og tester før der submittes.

vbronx > Der blev du lige en anelse for tung til mig  :)
- Men umiddelbart ser det helt klart smartere ud end min kode. Har ikke set den indexOf før.
Avatar billede jakoba Nybegynder
09. juli 2002 - 23:14 #13
Din knap kan nøjes med at være type='button', så bliver formularen ikke sendt.
Avatar billede vbronx Nybegynder
10. juli 2002 - 00:13 #14
eller bare en <button onclick="knapognap()"></button>
Avatar billede nidkin Nybegynder
10. juli 2002 - 09:52 #15
Det vil jeg prøve at lege lidt videre med.
- Nu er jeg ihvertfald blevet klogere  :)
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