Avatar billede wollabella Nybegynder
21. juli 2001 - 13:54 Der er 15 kommentarer og
1 løsning

Tjeck af variabel

Hvordan tjecker man en variabel at der kun er tal eller bogstaver i den?
Avatar billede jakoba Nybegynder
21. juli 2001 - 14:08 #1
det hurtigst og nemmeste er med en Regular Expression.
var dinvar = \"hvad det nu er for en streng\";
if ( /^\\w+$/.test( dinvar ) )
    alert( \"OK. kun cifre og bogstaver.\" )
else
    alert( \"Sorry. den duer ikke.\" );

desværre er regExp\'s ikke specielt intuitive. læs om dem i kapitel 4 her:
http://developer.netscape.com/docs/manuals/js/client/jsguide/index.htm

mvh JakobA
Avatar billede roenving Novice
21. juli 2001 - 14:15 #2
>>jakoba
intuitive ?·|||
det har du sågu ret i!
Avatar billede wollabella Nybegynder
21. juli 2001 - 15:03 #3
hmm det jeg gerne vil vide... er hvordan jeg gør så der enten kun er tal i en variabel eller kun bogstaver....
Avatar billede jakoba Nybegynder
21. juli 2001 - 15:10 #4
var dinvar = \"hvad det nu er for en streng\";
if ( /^\\d+$|^[A-Za-z_]+$/.test( dinvar ) )
    alert( \"OK. enten cifre eller bogstaver.\" )
else
    alert( \"Sorry. den duer ikke.\" );
Avatar billede jumper Nybegynder
21. juli 2001 - 17:57 #5
Istedet for

/^\\d+$|^[A-Za-z_]+$/

kan du forkorte det til

/^[\\dA-Z]+$/i

dvs., rykke \\d indenfor character settet ;)

/Thor
Avatar billede wollabella Nybegynder
21. juli 2001 - 19:46 #6
Jeg tænkte....

jeg har denne kode..

<script>
var dinvar = \"32\";
if (/^[\\dA-Z]+$/.test( dinvar ) )
    alert( \"OK. enten cifre eller bogstaver.\" )
else
    alert( \"Sorry. den duer ikke.\" );

</script>


hvordan laver jeg DER KUN må være tal i den... med dette eksempel må der enten kun være tal eller botgstaver i!
Avatar billede jakoba Nybegynder
21. juli 2001 - 20:44 #7
kun cifre:
    if (/^\\d+$/.test( dinvar ) )

kun bogstaver
    if (/^[A-Z]+$/.test( dinvar ) )

PS: Jeg er ikke helt enig med Jumper her. test lige om ikke
    var dinvar = \"32BOGST\";
    if (/^[\\dA-Z]+$/.test( dinvar ) )
giver OK

mvh JakobA
Avatar billede wollabella Nybegynder
21. juli 2001 - 22:55 #8
ja men det var bare fordi jeg ville gerne prøve at fostå scriptet... jeg forstår.

den emd bogstaver sådan da...


fordi det er lidt det samme i php

[A-Za-z] store og små bogstaver...

men i tal.... der er det

[0-9] i php.. det giver jo en del mere mening end i javascript *GG*

Avatar billede wollabella Nybegynder
21. juli 2001 - 23:05 #9
hvad er der galt her?

<script>
function tjeckit()
{
var testing = test.vari.value;

if (/^\\d+$/.test.(testing))
{
alert(\'Din tekst indeholdte kun tal\');
}
else if (/^[A-Z]+$/.test.(testing))
{
alert(\'Din tekst indeholdte kun bogstaver\');
}
else
{
alert(\'Din tekst indeholdte både tal og bogstaver\');
}
}
</script>
<form name=\"test\" action=\"java script:tjeckit()\">
Skriv din tekst her <input type=\"text\" name=\"vari\">
<input type=\"button\" onclick=\"tjeckit()\" value=\"Tjeck\">
Avatar billede jakoba Nybegynder
21. juli 2001 - 23:08 #10
du kan også bruge [0-9] i javascript. \\d er blot en specialkarakter for det samme. (og \\d virker også i php)
Ligesom  \\w er specialkarakteren for [0-9A-Za-z_]

Javascript \'lånte\' hele RegExp ideen fra PHP. Så alt hvad du kan i php, det kan du roligt prøve i javasvript. Der er gode chancer for at det virker.

mvh JakobA
Avatar billede jakoba Nybegynder
21. juli 2001 - 23:09 #11
Ups. næe, det var vist både PHP og JavaScript der lånte ideen fra perl.
Ihvertfald:  De er nært beslægtede :)
Avatar billede wollabella Nybegynder
21. juli 2001 - 23:19 #12
Ja men kan du se fejlen i mit script... fordi for mig ser det nu meget rigtigt ud... meeen jeg er jo også lidt af en newbie :)
Avatar billede jakoba Nybegynder
21. juli 2001 - 23:39 #13
jeg har
ændret format til min egen \"eneste rigtige måde at skrive det\" :)
ændret formens navn fra test til mintest. (der kun nemt være noget i browseren der hed \'test\')
sat document. foran feltadressen i linien:
    var testing = document.mintest.vari.value;
indsat a-z så små bogstaver også accepteres i bogstavtesten
    else if (/^[A-Za-z]+$/.test.(testing)) {
afsluttet din form med den </form> kommando.
det burde virke.

<script>
function tjeckit() {
    var testing = document.mintest.vari.value;

    if (/^\\d+$/.test.(testing)) {
        alert(\'Din tekst indeholdte kun tal\');
    }
    else if (/^[A-Za-z]+$/.test.(testing)) {
        alert(\'Din tekst indeholdte kun bogstaver\');
    }
    else {
        alert(\'Din tekst indeholdte både tal og bogstaver\');
    }
}
</script>
<form name=\"mintest\" action=\"java script:tjeckit()\">
Skriv din tekst her <input type=\"text\" name=\"vari\">
<input type=\"button\" onclick=\"tjeckit()\" value=\"Tjeck\">
</form>
mvh JakobA
Avatar billede wollabella Nybegynder
21. juli 2001 - 23:48 #14
jeg ved ikke med dig men hos mig er der stadig fejl ....
Avatar billede jakoba Nybegynder
21. juli 2001 - 23:51 #15
hvad siger fejlen, og hvad sker der?
Avatar billede jakoba Nybegynder
21. juli 2001 - 23:58 #16
der har sneget sig et punktum formeget ind.
      test.(testing)  er forkert.
      test(testing)    er korrekt.

nedenstående virker hos mig:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">
<HTML>
<HEAD>
    <TITLE>[Ingen titel]</TITLE>

<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\">
<script>
function tjeckit() {
    var testing = document.mintest.vari.value;

    if (/^\\d+$/.test(testing)) {
        alert(\'Din tekst indeholdte kun tal\');
    }
    else if (/^[A-Za-z]+$/.test(testing)) {
        alert(\'Din tekst indeholdte kun bogstaver\');
    }
    else {
        alert(\'Din tekst indeholdte både tal og bogstaver\');
    }
}
</script>
</HEAD>
<BODY>

<form name=\"mintest\" action=\"java script:tjeckit()\" onsubmit=\"tjeckit();return false\">
Skriv din tekst her <input type=\"text\" name=\"vari\">
<input type=\"button\" onclick=\"tjeckit()\" value=\"Tjeck\">
</form>

<!-- WebWriter AutoDato -->Opdateret: 21.7.2001<!-- WW -->
</BODY>
</HTML>
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