Avatar billede brevkasserne Nybegynder
14. juni 2003 - 19:41 Der er 14 kommentarer og
1 løsning

Min. 3 tegn og kun a-z samt _ og -

Jeg har denne funktion som tjekker om et brugernavn er over 3 tegn langt:

if (!(document.opret.username.value.length > 3)) {
alert('Please specify a valid username!');
document.opret.username.focus();
return false; }

Hvordan får jeg den til samtidig at tjekke at brugernavnet kun indeholder a til z, tallene 0 til 9 og _ og -
Avatar billede roenving Novice
14. juni 2003 - 19:46 #1
regex = /[a-z0-9_-]{3}/i;
if (!regex.test(document.opret.username.value)) {
alert('Please specify a valid username!');
document.opret.username.focus();
return false; }

Accepter også store bogstaver -- skal lige teste den selv også !-)
Avatar billede brevkasserne Nybegynder
14. juni 2003 - 19:54 #2
(håber ikke jeg er for besværlig)

Kan man ikke slå disse linjer sammen:
regex = /[a-z0-9_-]{3}/i;
if (!regex.test(document.opret.username.value)) {

Så man ikke behøver at lave en slags variabel, men bare smækker det hele sammen til en stor linje?
Og den skal både acceptere store og små bogstaver :-)
Avatar billede grunken Nybegynder
14. juni 2003 - 19:55 #3
<script language="JavaScript" type="text/javascript">
f = document.opret.username.value

function chkNavn(f) {
    if(f.match(/^[a-z0-9-]+$/i) && f.length>3) {
        return true;}
    else{
        alert('Please specify a valid username!')
        document.opret.username.focus();}}
Avatar billede schaefner Juniormester
14. juni 2003 - 19:56 #4
roenving >> Det skal vel være:

/[a-z0-9_-]{3,}/i;
Avatar billede roenving Novice
14. juni 2003 - 20:10 #5
Jeg kunne f***** ikke få det til at virke -- er bestemt heller ik' ekspert i RegExp :-(
Avatar billede roenving Novice
14. juni 2003 - 20:12 #6
>>grunken
Sæ'fø'li' -- den fik jeg som den første li'e rettet, men den blev ved med at acceptere .: osv. -- kan du forklare den, så jag kan lære det ,-)
Avatar billede brevkasserne Nybegynder
14. juni 2003 - 20:12 #7
Er der nogen der kan bekræfte at denne virker perfekt?

if (!(document.opret.username.value.length > 2 && document.opret.username.value.match(/^[a-z0-9-]+$/i))) {

Er taget ud fra grunkens!
Avatar billede roenving Novice
14. juni 2003 - 20:19 #8
der skal lige tilføjes underscore:

/^[a-z0-9_-]+$/i

-- jeg har ikke præcis testet dit udtryk men regexp'en
Avatar billede roenving Novice
14. juni 2003 - 20:25 #9
Så ser det ud til at jeg fik bikset en sammen som kan anvendes som den eneste:

/^([a-z0-9_-]{3,})+$/i

-- altså:

if (document.opret.username.value.match(/^([a-z0-9_-]{3,})+$/i)) {
Avatar billede roenving Novice
14. juni 2003 - 20:26 #10
if (!  selvfølgelig
Avatar billede brevkasserne Nybegynder
14. juni 2003 - 20:35 #11
Nu er jeg kommet frem til denne (forhåbentlige) løsning:

if (!(document.register.username.value.length > 2 && document.register.username.value.match(/^[a-z0-9_-]+$/i))) {

Hvis det ser godt ud så vil jeg gerne have grunken og roenvig til at lave et svar, så fordeler jeg pointene!
Avatar billede roenving Novice
14. juni 2003 - 20:42 #12
Ved en hurtig test reagerede den ordentligt hver gang, så '-)
Avatar billede grunken Nybegynder
14. juni 2003 - 20:44 #13
roenving var klart mest ihærdig....

giv ham points :)

>roenving du skal IK være ked af at du er "regexp newbee" :), jeg er generelt bare newbee ;D
Avatar billede brevkasserne Nybegynder
14. juni 2003 - 20:46 #14
Hmm, fair nok!
Takker for alle svar :-D

Og jeg er nok mest newbee her, men hva' f***.... :-D
Avatar billede roenving Novice
14. juni 2003 - 20:48 #15
-- jamen takker for points ;~}

-- men hvad f***** skal der til ...

de er hammersmarte de der regulære udtryk, men de har vist deres mærkværdigheder ...

-- en dag lærer jeg nok noget ,-)
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