/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
regulaært udtryk
Fra : Kasper


Dato : 16-04-01 20:45

Hej !

Hvordan kan det være at flg script giver lov til at man skriver 12,56?
Det burde jo ikke acceptere kommatal. Jeg tester i explorer 5.5.

<SCRIPT>
function testit() {
if (!(/\d+$/.test(document.Form1.testfield.value))) {
alert("Fejl i indtastning")
document.Form1.testfield.focus()
}
}
</SCRIPT>
<BODY>
<FORM NAME="Form1">
<INPUT TYPE=TEXT NAME="testfield">
<INPUT TYPE=BUTTON VALUE="Test" onClick="javascript:testit()">
</FORM>

Med venlig hilsen

Kasper


 
 
Jens Peter Karlsen (17-04-2001)
Kommentar
Fra : Jens Peter Karlsen


Dato : 17-04-01 06:46

Du mangler en "return false" ellers vil formen blive submittet uanset
fejlmeddelelsen.

Regards Jens Peter Karlsen. Microsoft MVP - Frontpage.

On Mon, 16 Apr 2001 21:45:11 +0200, Kasper <kasper@huleboer.dk> wrote:

>Hej !
>
>Hvordan kan det være at flg script giver lov til at man skriver 12,56?
>Det burde jo ikke acceptere kommatal. Jeg tester i explorer 5.5.
>


Kasper (17-04-2001)
Kommentar
Fra : Kasper


Dato : 17-04-01 13:53

Skidt med om formen bliver submittet. javascriptet kan sagtens køre
alligevel. Pointen er hvorfor at udtrykket accepterer kommaer.

Med venlig hilsen

Kasper

Jens Peter Karlsen wrote:

> Du mangler en "return false" ellers vil formen blive submittet uanset
> fejlmeddelelsen.
>
> Regards Jens Peter Karlsen. Microsoft MVP - Frontpage.
>
> On Mon, 16 Apr 2001 21:45:11 +0200, Kasper <kasper@huleboer.dk> wrote:
>
> >Hej !
> >
> >Hvordan kan det være at flg script giver lov til at man skriver 12,56?
> >Det burde jo ikke acceptere kommatal. Jeg tester i explorer 5.5.
> >


Claus Schmidt (22-04-2001)
Kommentar
Fra : Claus Schmidt


Dato : 22-04-01 21:15

"Kasper" ::
> Hvordan kan det være at flg script giver lov til at man skriver 12,56?

Jeg er ikke sikker på at det er det der er grunden, men
denne linje:

> if (!(/\d+$/.test(document.Form1.testfield.value))) {

tyder måske på at det er negationen det er galt med,
altså udråbstegnet i første parantes.

Normalt ville man bruge det med lighedstegn a la:

if (x != y) doso

Her har man dog også en variabel på begge sider der
skal matches mod hinanden, det har du (heller) ikke
i udtrykket.

Det kan være noget helt andet, det er bare et gæt, så
hvis syntaksen i virkeligheden er korrekt beklager jeg.

--
[claus]




Jonathan Stein (22-04-2001)
Kommentar
Fra : Jonathan Stein


Dato : 22-04-01 22:54

Claus Schmidt wrote:

> Det kan være noget helt andet, det er bare et gæt, så
> hvis syntaksen i virkeligheden er korrekt beklager jeg.

Det er den. Hvis "test" er en funktion, der returnerer en boolsk værdi
(true eller false), kan man nøjes med: if (test(...)) { // gør noget... }
- og sætter man et ! foran, så der står: if (!test(...)) får man den den
modsatte værdi (altså true, hvis funktionen returnerer false og omvendt).

Men jeg ser lige, at Kasper vist har glemt en ^ i starten af udtrykket.
Kasper: Prøv med /^\d+$/ (dit nuværende udtryk matcher "56" i "12,56" og
derfor godtages "12,56").

M.v.h.

Jonathan





top (23-04-2001)
Kommentar
Fra : top


Dato : 23-04-01 07:25

>> Hvordan kan det være at flg script giver lov til at man skriver 12,56?
>> if (!(/\d+$/.test(document.Form1.testfield.value))) {
Den giver også lov til at skrive sdfknsdkfsdfn12,56

Du tester kun på at der er cifre i slutningen af strengen (det svarer
til /[0-9]+$/)

Hvis det er meningen strengen kun må bestå af cifre, så prøv /^\d+$/
-Top

PS: if(!x) er også et validt udtryk

> if (x != y) doso
>


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste