09. juli 2002 - 16:28Der 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>
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>
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>
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
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?
<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>
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 :)
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.
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) }
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.
Det vil jeg prøve at lege lidt videre med. - Nu er jeg ihvertfald blevet klogere :)
Synes godt om
Ny brugerNybegynder
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.