Jag skulle vilja kontrollera om användaren skrivit sitt personnummer med ett bindesträck och om denne inte gjort det lägga till ett. Eller alternativt att jag tar bort det innan jag lägger till det i databasen (det vet jag hur man gör) och sedan lägger till ett varje gång jag visar personnumret, fast jag föredrar nog det första alternativet.
Kan även göra så här för att kontrollera, använde även Baltiz lösning:
Function CheckNumber(ByVal strNumber)
' deklarera variabler
Dim lngSum, lngTemp, lngPos
' kontrollera formatet
With New RegExp
.Pattern = "^\d{2}-?\d{2}-?\d{2}-?\d{4}$"
If not .Test(strNumber) Then
CheckNumber = False
Exit function
End If
End With
' ta bort eventuella bindestreck
strNumber = Replace(strNumber,"-","")
' beräkna checksumman
lngSum = 0
For lngPos = 1 to 10
lngTemp = CLng(Mid(strNumber, lngPos, 1)) * ((lngPos mod 2) + 1)
If lngTemp > 9 Then lngTemp = lngTemp - 9
lngSum = lngSum + lngTemp
Next
' kontrollera checksumman
CheckNumber = (lngSum mod 10) = 0
End Function
strPersonnr = "690101-3901"
If CheckNumber(strPersonnr) Then
Set re = New RegExp
re.Global = true
re.Pattern = "(\d{6})(\d{4})"
personnummer = re.Replace(strPersonnr,"$1-$2")
Set re = Nothing
Response.Write personnummer
Else
Response.Write "Personnumret är inte korrekt."
End If