![]() |
|
|
|||||||
| Javascript Här diskuteras det som rör Javascript, AJAX, DOM & DHTML. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 2001-06-19
Inlägg: 212
Lösningar: 1 |
Hejsan.
Använder mig av följande kod för att validera ett nummer-fält: Kod:
<!--
function kontrollera(obj){
var svar = obj.svar.value;
var pattern = /^((\d+)|(\d+[\.,]\d+))(([Ee])-?\d+)?$/;
flag = pattern.test(svar);
if(flag){
return true;
}
else{
alert("Du måste skriva in ett tal.");
document.fraga.svar.focus();
return false;
}
}
//-->
------------------ MVH Harback |
|
|
|
|
|
#2 |
|
Medlem
Registrerad: 2000-05-27
Ort: Helsingborg
Inlägg: 7 625
Lösningar: 635 |
Jag hade nog skrivit ungefär så här.
Kod:
function kontrollera(obj) {
var svar = obj.svar.value;
if (isNaN(svar)) {
alert("Du måste skriva in ett tal.");
document.fraga.svar.focus();
return false;
} else if (svar < 1) {
alert("Talet får inte vara mindre än noll.");
document.fraga.svar.focus();
return false;
} else {
return true;
}
}
![]() ------------------ /Erik www.juhlin.nu /sk8files/ /mp2d/ [Redigerat av Erik Juhlin den 20 sep 2001]
__________________
/Erik "My love for you is like a truck, BERSERKER" "Would you like some making f**k, BERSERKER" |
|
|
|
|
|
#3 |
|
Moderator
Registrerad: 2000-06-18
Inlägg: 4 199
Lösningar: 246 |
Ja. Regexp är smidigt, men kanske lite överarbetat i ett sådant exempel. ![]() ------------------ / J
__________________
/ Jojoxx "Always remember that you're unique and special, just like everyone else..." |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 2001-06-19
Inlägg: 212
Lösningar: 1 |
Jag använder inte bara Regular Expressions för att det är tufft
utan också för att man ska kunna skriva både punkt (.) och komma (,). Går det att lösa med Regular Expressions att man inte får skriva bara noll?------------------ MVH Harback [Redigerat av Harback den 20 sep 2001] |
|
|
|
|
|
#5 |
|
Medlem
Registrerad: 2000-06-26
Ort: Kungsbacka
Inlägg: 274
Lösningar: 0 |
kan du inte bara lägga till
if(flag && svar != 0) ... ------------------ /peterbladh [Redigerat av peterbladh den 21 sep 2001] |
|
|
|
|
|
#6 | |
|
Medlem
Registrerad: 2000-06-02
Ort: Söders höjder
Inlägg: 6 147
Lösningar: 762 |
Citat:
Kod:
var nonZeroNumber = /^[1-9]\d*([.,]\d+)?$/; ------------------ I wasn't born with enough middle fingers
__________________
Vissa dagar är man asfalten, andra dagar är man ångvälten. Vissa dagar är man myggan, andra dagar är man vindrutan. XML är som våld; löser det inte ens problem betyder det att man använder för lite. |
|
|
|
|
|
|
#7 |
|
Medlem
Registrerad: 2001-06-19
Inlägg: 212
Lösningar: 1 |
Härligt!
------------------ MVH Harback |
|
|
|
|
|
#8 |
|
Medlem
Registrerad: 2001-06-19
Inlägg: 212
Lösningar: 1 |
Hejsan igen!
Efter att ha testat din variant av RegExpen så kan man ju skriva t.ex. 0,0 eller 0,000 osv. Jag försökte att fixa pattern och också lägga till ifsatser men fick det inte att fungera. Kan någon fixa denna kod så att det inte går att skriva ett tal lika med noll? Kod:
<!--
function kontrollera(obj){
var svar = obj.svar.value;
var pattern = /^(([1-9]\d*)|(\d+[\.,]\d+))$/;
flag = pattern.test(svar);
if(flag){
return true;
}
else{
alert("Du måste skriva in ett tal.");
document.fraga.svar.focus();
return false;
}
}
//-->
------------------ MVH Harback [Redigerat av Harback den 23 sep 2001] |
|
|
|
|
|
#9 |
|
Medlem
Registrerad: 2000-06-02
Ort: Söders höjder
Inlägg: 6 147
Lösningar: 762 |
Eh, hallå? Du använder inte min regexp. Jag skrev:
/^[1-9]\d*([.,]\d+)?$/ Du använder: /^(([1-9]\d*)|(\d+[\.,]\d+))$/ Men du behöver ju verkligen inte använda regexpar! Det vore så vansinnigt mycket enklare att säga nå i stil med vad Erik sa. Kod:
var resultat = parseFloat(foo);
if(isNaN(resultat) || resultat == 0)
alert("hallå där!");
Does it matter that this waste of time is what makes a life for you?
__________________
Vissa dagar är man asfalten, andra dagar är man ångvälten. Vissa dagar är man myggan, andra dagar är man vindrutan. XML är som våld; löser det inte ens problem betyder det att man använder för lite. |
|
|
|
|
|
#10 |
|
Medlem
Registrerad: 2001-06-19
Inlägg: 212
Lösningar: 1 |
Nä, jag ändrade lite i den. Testade lite...
Men jag måste ha RegExp i ett hörn iallafall eftersom jag ska göra så att både punkt och komma kommer igenom. Jag la till efter if(flag) den ifsats Erik körde med att om svar < 1 (egentligen borde det ju vara svar = 0?)så går det inte men jag fick det inte att fungera. Kan någon hjälpa mig att lägga ihop dom satserna eller ska jag göra på något annat sätt kanske? ------------------ MVH Harback |
|
|
|
|
|
#11 | |
|
Moderator
Registrerad: 2000-06-18
Inlägg: 4 199
Lösningar: 246 |
Citat:
var svar=obj.svar.value.replace(/,/,'.'); ------------------ / J [Redigerat av Jojoxx den 23 sep 2001]
__________________
/ Jojoxx "Always remember that you're unique and special, just like everyone else..." |
|
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|