Avatar billede halden Nybegynder
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???
Avatar billede erikjacobsen Ekspert
10. oktober 2003 - 14:59 #1
if( fabrikant.charAt(i) >= '0' && fabrikant.charAt(i) <= '9' ) {
Avatar billede nmh Nybegynder
10. oktober 2003 - 14:59 #2
prøv at ændre til:
if( fabrikant.charAt(i) >= "0" && fabrikant.charAt(i) <= "9" ) {
Avatar billede squashguy Nybegynder
10. oktober 2003 - 14:59 #3
i stedet for chatAt(), så brug charCodeAt()
Avatar billede roenving Novice
10. oktober 2003 - 15:04 #4
if(!fabrikant.match(/\d+/g)){
  error_message = error_message + "* 'Fabrikant' må ikke indeholde underlige tegn.\n";
  error = 1;
}
Avatar billede halden Nybegynder
10. oktober 2003 - 15:08 #5
jeg skal også tjekke på om det er bogstaver...
Avatar billede roenving Novice
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)){
Avatar billede halden Nybegynder
10. oktober 2003 - 15:13 #7
if( fabrikant.charCodeAt(i) >= 48 && fabrikant.charCodeAt(i) <= 48 )

virker ikke...
Avatar billede halden Nybegynder
10. oktober 2003 - 15:15 #8
der må kun være tal og bogstaver...
Avatar billede roenving Novice
10. oktober 2003 - 15:16 #9
if(!fabrikant.match(/[a-zæøå\d]+/gi)){
Avatar billede halden Nybegynder
10. oktober 2003 - 15:21 #10
if(!fabrikant.match(/[a-zæøå\d]+/gi)){

den godtager også tegn som ,.;:"#¤%&/())=

det må den ikke...
Avatar billede halden Nybegynder
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;
    }
Avatar billede nmh Nybegynder
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.
Avatar billede erikjacobsen Ekspert
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");
}
Avatar billede roenving Novice
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 !-)
Avatar billede erikjacobsen Ekspert
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...
Avatar billede roenving Novice
12. oktober 2003 - 12:01 #16
*s*
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