Avatar billede encory Nybegynder
28. marts 2005 - 13:42 Der er 30 kommentarer og
1 løsning

Validering af tekststreng for special tegn

Ved form validering vil jeg gerne have testet for specialtegn således at disse ikke er gyldige med undtagelse af & og /.
Jeg prøver at benytte javascripts value.match() funktion, men jeg fatter bjælde af den.
tekststrengen må indeholde a til å stort og småt samt tal. Derudover tegnene - og & og / og ellers intet andet...
Er der nogen der kan give en hånd med ??
Avatar billede barklund Nybegynder
28. marts 2005 - 14:21 #1
Prøv med:

if (min_str.match(/^[a-zæøå0-9&\/-]+$/i)) {
    alert("det var sgu rigtigt");
} else {
    alert("din bølle, skriv ordentligt!");
}

:)

--
Morten Barklund
Avatar billede roenving Novice
28. marts 2005 - 15:41 #2
Må _ ikke bruges ?-)
Avatar billede barklund Nybegynder
28. marts 2005 - 15:55 #3
din bølle, skriv ordentligt!
Avatar billede barklund Nybegynder
28. marts 2005 - 15:55 #4
Jeg synes det var sjovt :D
Avatar billede roenving Novice
28. marts 2005 - 16:05 #5
-- jeg spurgte bare til _ (underscore) fordi man så kunne bruge shortcuttet \w istedet for en masse andet:

if (min_str.match(/^[\wæøå&\/-]+$/i)) {
Avatar billede barklund Nybegynder
28. marts 2005 - 16:08 #6
Jaja :)

(jeg synes stadig det var sjovt)
Avatar billede dmcn Praktikant
28. marts 2005 - 16:26 #7
Det synes jeg også!
Avatar billede razor Nybegynder
28. marts 2005 - 16:31 #8
din bølle, skriv ordentligt!
Avatar billede roenving Novice
28. marts 2005 - 16:31 #9
*lol*
Avatar billede encory Nybegynder
28. marts 2005 - 16:35 #10
_ (underscore) må ikke benyttes
Avatar billede barklund Nybegynder
28. marts 2005 - 16:37 #11
det var sgu rigtigt
Avatar billede encory Nybegynder
28. marts 2005 - 16:44 #12
Har lavet det som følger med det virker ikke & og / bliver stadigvæk ikke accepteret?

if(!form.company_name.value.match(/^[a-zæøå0-9&\/-]+$/i)){
        alert("Fejlmeddelelse!");
        form.company_name.focus();
        return false;
}
Avatar billede roenving Novice
28. marts 2005 - 16:50 #13
Det gør det da hos mig ?-)

alert(!"kljh/njkh&kjh".match(/^[a-zæøå0-9&\/-]+$/i));

giver helt korrekt false !-)
Avatar billede encory Nybegynder
28. marts 2005 - 17:05 #14
Okay.. jeg prøver igen.. Strengen må indeholde aA til åÅ alle tal. Derudover må strengen indeholde - & /. alle andre tegn og symboler skal returnere false.

Bjørnebryg 1897 A/S = true
Holm hansen & søn - plus flere = true

te!st"str#eng¤ der% Skal() gi[]ve?+ false' så formen; , ikke .: bliver submitted _*@£$ = false
Avatar billede roenving Novice
28. marts 2005 - 17:07 #15
-- den med mellemrummet havde du glemt at fortælle om ...

/^[a-zæøå0-9&\/ -]+$/i
Avatar billede encory Nybegynder
28. marts 2005 - 17:13 #16
Beklager den med mellemrummet :(

Det virker stadig ikke... er det bare mig der ikke fatter en bjælde

if(!form.company_name.value.match(/^[a-zæøå0-9&\/ -]+$/i)){
        alert("fejlmeddelelse!");
        form.company_name.focus();
        return false;
}
Avatar billede roenving Novice
28. marts 2005 - 17:17 #17
Begge dine eksempler godkendes hos mig, mens det sidste giver den fejl, det skal ...
Avatar billede encory Nybegynder
28. marts 2005 - 17:19 #18
Det fatter jeg ikke... hvis jeg indtaster & / i formen returnerer den false og giver fejlmeddelelsen... den burde returnerer true og submitte formen. hvis jeg ikke skriver nogen specialtegn valideres den til true og formen submittes
Avatar billede roenving Novice
28. marts 2005 - 17:23 #19
Hvilken browser bruger du ?-)

Det virker perfekt hos mig både i IE og Gecko !-)
Avatar billede encory Nybegynder
28. marts 2005 - 17:25 #20
Internet explorer....
Avatar billede encory Nybegynder
28. marts 2005 - 17:34 #21
Har prøvet lidt forskelligt og jeg kan bare ikke få det til at virke.. den tager ikke de 3 tegn med...
Avatar billede encory Nybegynder
28. marts 2005 - 17:35 #22
er der nogen alternativer ???
Avatar billede barklund Nybegynder
29. marts 2005 - 10:18 #23
Alle andre for det til at virke fint, så fejlen må ligge i det du har skrevet. Dump hele din fil herind.
Avatar billede encory Nybegynder
29. marts 2005 - 13:57 #24
ok dette er hele funktionen:

function return_appointment_values(form) {
    if(form.guest_id.value == ""){
      return false;
    }
    else if(form.employee.value == ""){
      alert("Vær venlig at vælge en meadarbejder!");
      form.employee.focus();
      return false;
    }
    else if(form.company_name.value == ""){
      alert("Vær venlig at indtaste et firmanavn!");
      form.company_name.focus();
      return false;
    }
    else if(!form.company_name.value.match(/^[a-zæøå0-9&\/ -]+$/i)){
      alert("Vær venlig at indtaste et firmanavn uden brug af specialtegn!");
      form.company_name.focus();
      return false;
    }
    else if(!check_date(form.arrival_date)) {
      alert("Ankomstdatoen kan ikke være før dags dato!");
      form.arrival_date.focus();
      return false;
    }
    else if(form.guest_name.value == ""){
      alert("Vær venlig at indtaste gæstens fulde navn !");
      form.guest_name.focus();
      return false;
    }
    else if(!form.guest_name.value.match((/^[\wæøå\- ]{1,250}$/i))){
      alert("Vær venlig at indtaste gæstens fulde navn uden brug af specialtegn!");
      form.guest_name.focus();
      return false;
    }
    else if(form.job_position.value != "" && !form.job_position.value.match((/^[\wæøå\- ]{1,250}$/i))) {
      alert("Vær venlig at indtaste gæstens job funktion uden brug af specialtegn!");
      form.job_position.focus();
      return false;
    }
    else {
      var str = form.guest_id.value +";"+ form.employee.value +";"+ form.company_name.value +";"+ form.arrival_date.value +";"+ form.arrival_time.value +";"+ form.departure_date.value +";"+ form.departure_time.value +";"+ form.guest_name.value +";"+ form.job_position.value;
      window.returnValue = str;
      window.close();
    }
}
Avatar billede roenving Novice
29. marts 2005 - 19:19 #25
Bortset fra et par enkeltheder burde det da virke uden problemer ...

Er det en modalDialog, modelessDialog eller en popup (bare nysgerrig !-)

-- og sådan, som jeg nok selv ville lave det:

function return_appointment_values(f) {
    if(f.guest_id.value == ""){
      return false;
    }
    if(f.employee.value == ""){
      alert("Vær venlig at vælge en meadarbejder!");
      f.employee.focus();
      return false;
    }
    if(f.company_name.value == ""){
      alert("Vær venlig at indtaste et firmanavn!");
      f.company_name.focus();
      return false;
    }
    if(!f.company_name.value.match(/^[a-zæøå0-9&\/ -]+$/i)){
      alert("Vær venlig at indtaste et firmanavn uden brug af specialtegn!");
      f.company_name.focus();
      return false;
    }
    if(!check_date(f.arrival_date)) {
      alert("Ankomstdatoen kan ikke være før dags dato!");
      f.arrival_date.focus();
      return false;
    }
    if(f.guest_name.value == ""){
      alert("Vær venlig at indtaste gæstens fulde navn !");
      f.guest_name.focus();
      return false;
    }
    if(!f.guest_name.value.match(/^[\wæøå\- ]{1,250}$/i)){
      alert("Vær venlig at indtaste gæstens fulde navn uden brug af specialtegn!");
      f.guest_name.focus();
      return false;
    }
    if(f.job_position.value != "" && !f.job_position.value.match(/^[\wæøå\- ]{1,250}$/i)) {
      alert("Vær venlig at indtaste gæstens job funktion uden brug af specialtegn!");
      f.job_position.focus();
      return false;
    }
    var str = f.guest_id.value +";"+ f.employee.value +";"+ f.company_name.value +";"+ f.arrival_date.value +";"+ f.arrival_time.value +";"+ f.departure_date.value +";"+ f.departure_time.value +";"+ f.guest_name.value +";"+ f.job_position.value;
    window.returnValue = str;
    window.close();
}
Avatar billede encory Nybegynder
29. marts 2005 - 21:17 #26
Det er et modal vindue
Avatar billede encory Nybegynder
29. marts 2005 - 22:11 #27
Jeg gandt fejlen....
Den lå desværre ikke i det script i havde givet mig med i nogle andre kald... :(
Min fejl!
Roenving vil du være venlig at lægge et svar. Så fordeler jeg lidt point til jer begge som tak for jeres hjælp....
Avatar billede roenving Novice
29. marts 2005 - 22:30 #28
Godt du fandt hullet igennem '-)
Avatar billede barklund Nybegynder
07. juli 2005 - 09:42 #29
Hov, nu fik jeg jo alle pointene - roenving, vil du have de 30 points retur?
Avatar billede roenving Novice
07. juli 2005 - 11:06 #30
Øehm, tjah, tjo, bom, bom ...
Avatar billede razor Nybegynder
07. juli 2005 - 20:24 #31
Ellers vil jeg gerne!
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