Avatar billede notebookonline Nybegynder
28. november 2006 - 12:45 Der er 12 kommentarer og
1 løsning

Lidt hjælp til kontrol af streng

Jeg bruger dette til at checke længden af min streng, men hvordan kan jeg checke på indholdet af karakterer?

Der skal checkes om der indtastes 4 tal og ikke bogstaver.

Jeg vil også gerne kunne checke i et andet script om der indtastes min 4 bogstaver og 1 tal.


if (post[p].value.length !=4)
                            {
                                alert("Forkert post nummer!!!");
                                postnr=false;
                                post[p].value ="";



På forhånd mange tak.
Avatar billede onkel_satan Nybegynder
28. november 2006 - 13:24 #1
var reg = new RegExp("([0-9]{4})"); // 4 tal og ikke bogstaver
var reg = new RegExp("([0-9]{4}[a-zA-Z]{1})"); // min 4 bogstaver og 1 tal
if (!reg.test(post[p].value.length)){
    alert("Forkert post nummer!!!");
    postnr=false;
    post[p].value ="";
}
Avatar billede onkel_satan Nybegynder
28. november 2006 - 13:26 #2
Hov, det er selvfølgelig ikke længden af indputtet men værdien vi vil undersøge.
if (!reg.test(post[p].value)){ istedet for if (!reg.test(post[p].value.length)){
Avatar billede notebookonline Nybegynder
28. november 2006 - 13:57 #3
Tak for det, men der er lige et par fejl.
Scriptet virker, men der tages ikke højde for space samt æøå, bruges disse fejler scriptet.

Kan du rette scriptet så dette også virker ?
Avatar billede onkel_satan Nybegynder
28. november 2006 - 14:17 #4
ret [a-zA-Z] til [a-øA-Ø]
Kan du lige give et eksemple på hvordan space accepteres som et bogstav eller tal ? Jeg kan ikke på den til at fejle med space.

ps. i eksemplet skriv f.eks. 4444[space]
Avatar billede olebole Juniormester
28. november 2006 - 14:42 #5
<ole>

Husk, at et dansk postnummer kan bestå af tre eller fire tal  ;o)

/mvh
</bole>
Avatar billede notebookonline Nybegynder
28. november 2006 - 14:58 #6
Vi har lidt problemer med det, det virker sådanset ok, men indtastes feks. et postnummer sådan her : ggffhh9000
Er den true, hvilket er forkert, der skal checkes på 4 tal, hverken mere eller mindre.
Avatar billede onkel_satan Nybegynder
28. november 2006 - 15:24 #7
"Der skal checkes om der indtastes 4 tal"
"om der indtastes min 4 bogstaver og 1 tal"
Men ok, skal det være præcis 4 tal skal du blot tilføre ^og $
^[0-9]{4}$
Avatar billede onkel_satan Nybegynder
28. november 2006 - 15:24 #8
^ start med
$ slutter med
Avatar billede notebookonline Nybegynder
28. november 2006 - 15:59 #9
cool det virker :-)
Hermed point til dig, jeg har dog et tillægsspørgsmål:

var reg = new RegExp("([0-9]{4}[a-zA-Z]{1})"); // min 4 bogstaver og 1 tal

Denne virker ikke helt som den skal, skriver jeg feks. vestergade bliver den true
Avatar billede onkel_satan Nybegynder
28. november 2006 - 16:23 #10
"var reg = new RegExp("([0-9]{4}[a-zA-Z]{1})"); // min 4 bogstaver og 1 tal
Denne virker ikke helt som den skal, skriver jeg feks. vestergade bliver den true"

Virker meget mystisk hvordan det skulle kunne lade sig gøre. Sikker på der ikke er et eller anden test var i din kode som forårsager dette ?
Indtaster jeg 'vestergade' bliver den ikke true.
Hvis vi lige skal gennemgå vores regular expression.
[0-9] //et tal af følgende 0,1,2,3,4,5,6,7,8,9
{4} // præcis 4 stk af hvad der nu må stå foran. I vores tilfælde, tal.
[a-øA-Ø] // et hvilket som helst bogstag, hvad enten store eller små
{1} // igen, præcis 1 stk af hvad der måtte stå foran. I vores tilfælde, et bogstav

Så hvordan 'vestergade' kan accepteres af ovennævnte regular expression er et godt spørgsmål. Som sagt så accepteres den heller ikke når jeg tester det.
Avatar billede notebookonline Nybegynder
28. november 2006 - 17:00 #11
{4} // præcis 4 stk af hvad der nu må stå foran. I vores tilfælde, tal.

Jeg bruger det til check af adresser, her er bogstaverne jo først, hvis det har noget at sige.

Der skal ikke checkes på præcis 4 bogstaver, men mindst 4 bogstaver og mindst 1 tal
Avatar billede onkel_satan Nybegynder
28. november 2006 - 18:35 #12
Vil du verificer en adresse kan du f.eks. gøre sådan her ^([a-øA-Ø]+|[a-øA-Ø]+\s[a-øA-Ø]+)\s+[0-9]+$

En hurtig gennemgang:
- Begynder (^) med ord ([a-øA-Ø]) bestående af mindst et eller flere blogstaver (+)
- eller (|)
- ord [a-zA-Z]+ mellemrum (\s) ord igen [a-zA-Z]+
- mindst mellemrum (\s+)
- slutter på ($) mindst et tal [0-9]+
Avatar billede notebookonline Nybegynder
29. november 2006 - 10:22 #13
Tak for dit svar, scriptet er dog altid false, kan du se fejlen?


if(addrese[a].getAttribute('name')=='address') //Finder next knappen

                                            {

                                            var reg = new RegExp("(^([a-øA-Ø]+|[a-øA-Ø]+\s[a-øA-Ø]+)\s+[0-9]+$)"); // min 4 bogstaver og 1 tal

                                            if (!reg.test(addrese[a].value))

                                                                  {                                         

                                                                                      alert("Addrese skal udfyldes!!!");

                                                                                        addresetjek=false;

                                                                  }                                                   

                                            }
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