webForumDet fria alternativet

Validera användarnamn

Webbutveckling

9 svar · 514 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Vad ska man tillåta för tecken i ett användarnamn egentligen, finns det någon slags standard? Någon som kan tipsa om ett bra regexp för validering av användarnamn?

Medlem sedan juni 20019 519 inlägg
#2

Innan man kan ge regExp förslag så hade det varit lättare att veta vad du har bestämt dig att validera på.

Jag tycker väl a-z,0-9,_ ... men mellanslag ska väl också vara tillåtet.

^[a-z0-9 _]{2,10}$

Ej testad men tror den ska ta 2-10 tecken med det jag skrev ovan.

Medlem sedan dec. 20025 483 inlägg
#3

Ett trubbel då är ju att en användare kan mata in enbart mellanslag, vilket sannolikt inte är önskvärt ;)

Medlem sedan dec. 20025 483 inlägg
#4

Åtminstone ett tecken (ej space). Strängen får ej innehålla fler än ett space i rad:

^[^\s](?:[^\s]|\s(?=[^\s]))*$
Medlem sedan sep. 2005673 inlägg
#5

voigtann1 skrev:

Innan man kan ge regExp förslag så hade det varit lättare att veta vad du har bestämt dig att validera på.

Mellan 3-20 tecken tänkte jag, med alla vanliga tecken inklusive svenska tecken tänkte jag. Gärna mellanslag men då skulle jag nog helst ha begränsningen att det inte får förekomma mellanslag i början, slutet eller flera efter varandra... är det möjligt?

Medlem sedan dec. 20025 483 inlägg
#6

Gör kollen i två steg:

  1. Använd någon strängfunktion för att verifiera att längden ligger inom intervallet
  2. Validera formatet med regexp:et
Medlem sedan mars 20041 505 inlägg
#7

Peter S, man kollar väl längden direkt i regexp-pattern? typ som voigtann1 skrev.

Medlem sedan juni 20019 519 inlägg
#8

RegExp är "dålig" på att kolla längden så nej egentligen inte.

Medlem sedan juli 200659 inlägg
#9

Gör en sån här validering:

If Len(string) < 3 then
strErr = strErr & "* För kort användarnamn. 3-20 tecken!<br>"
ElseIf Len(string) > 20 then
strErr = strErr & "* För långt användarnamn. 3-20 tecken!<br>"
End If
If inStr(string, " ") then
strErr = strErr & "* Du kan inte ha mellanrum i användarnamnet ditt pundhuvud!<br>"
End If
If strErr <> "" then
response.write(strErr)
Else
'Klarade sig igenom validering!
End If

Medlem sedan juni 200032 967 inlägg
#10

Maadmax - [kod]-taggar, tack. Dessutom gällde frågan regexp.

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)