10. oktober 2003 - 14:56
Der er
15 kommentarer og 1 løsning
Tjek på String
for (i=0; i<fabrikant.length; i++) { if( fabrikant.charAt(i) >= 48 && fabrikant.charAt(i) <= 57 ) { } else { error_message = error_message + "* 'Fabrikant' må ikke indeholde underlige tegn.\n"; error = 1; } } Selv om jeg indtaster f.eks 444 så kommer den ind i else. Hvad er der galt???
Annonceindlæg fra Barco
10. oktober 2003 - 14:59
#1
if( fabrikant.charAt(i) >= '0' && fabrikant.charAt(i) <= '9' ) {
10. oktober 2003 - 14:59
#2
prøv at ændre til: if( fabrikant.charAt(i) >= "0" && fabrikant.charAt(i) <= "9" ) {
10. oktober 2003 - 14:59
#3
i stedet for chatAt(), så brug charCodeAt()
10. oktober 2003 - 15:04
#4
if(!fabrikant.match(/\d+/g)){ error_message = error_message + "* 'Fabrikant' må ikke indeholde underlige tegn.\n"; error = 1; }
10. oktober 2003 - 15:08
#5
jeg skal også tjekke på om det er bogstaver...
10. oktober 2003 - 15:13
#6
Ovenstående tester kun for tal ... Hvis der må være tal, bogstaver og _ (underscore) kan man: if(!fabrikant.match(/\w+/gi)){ Hvis der alene må være bogstaver kender jeg umiddelbart kun: if(!fabrikant.match(/[a-zæøå]+/gi)){
10. oktober 2003 - 15:13
#7
if( fabrikant.charCodeAt(i) >= 48 && fabrikant.charCodeAt(i) <= 48 ) virker ikke...
10. oktober 2003 - 15:15
#8
der må kun være tal og bogstaver...
10. oktober 2003 - 15:16
#9
if(!fabrikant.match(/[a-zæøå\d]+/gi)){
10. oktober 2003 - 15:21
#10
if(!fabrikant.match(/[a-zæøå\d]+/gi)){ den godtager også tegn som ,.;:"#¤%&/())= det må den ikke...
10. oktober 2003 - 15:58
#11
Sådan endte det: var count = 0; var count01 = 0; for (i=0; i<fabrikant.length; i++) { if( !fabrikant.match(/[a-zæøå]+/gi) ) { ++count; } if ( !fabrikant.charAt(i) >= '0' && !fabrikant <= '9' ) { ++count01; } } if (count > 0 && count01 > 0) { error_message = error_message + "* 'Fabrikant' må kun indeholde tal og bogstaver.\n"; error = 1; }
10. oktober 2003 - 16:22
#12
Er det ikke lidt underligt selv at tage pointene? Du burde da have givet point til erikjacobsen og roenving.
10. oktober 2003 - 16:36
#13
Det er ligemeget med point, men gør det i det mindste korrekt så: fabrikant="333dfgd fgæøå"; if( fabrikant.match(/^[a-zæøåÆØÅ0-9]+$/gi)) { alert("ok"); } else { alert("fejl"); }
11. oktober 2003 - 04:36
#14
>>erik har vi et problem (eller to) her jeg ikke kender ?-) -- jeg har nemlig tidligere været involveret i nogle problemløsninger, hvor 1. i-attributten sagtens kunne oversætte skandinaviske bogstaver og 2. g-attributten (sammen med ! --not ) klarede en global-tings-match !-)
11. oktober 2003 - 09:20
#15
Du har ret her: g attributten er overflødig.... Og ja, ÆØÅ er vistnok overflødig når man har i-attrubutten på lige netop i JavaScript. Det er en slags refleksiv selvforsvar fra maskiner med forkert opsat locale. På en af mine browsere virker if( fabrikant.match(/^[\w\d]+$/i)) { f.x ikke på æ ø og å, hvilket ellers burde være ok. Da man ikke ved hvad der findes ude i verden af browsere tager jeg dem med...
12. oktober 2003 - 12:01
#16
*s*
Vi tilbyder markedets bedste kurser inden for webudvikling