![]() |
Validering av namn
Tjena, jag skulle behöva en funktion som kontrollerar att ett förnamn och efternamn är korrekt ifyllt. Med korrekt menar jag att det verkligen är ett namn, eller iaf ett korrekt svenskt ord. Om någon fyller i AAAA som förnamn, så skall detta ge ett fel. Det räcker alltså inte med att kontrollera längden på ordet, dvs att man har fyllt i något överhuvudtaget. Absolut bästa vore att kunna koppla upp sig mot en databas innehållande samtliga svenska namn och kolla om det angivna namnet finns med.
Någon som har en smart lösning för detta? Frågan är om det går att lösa detta med en regexp som kollar grammatiken? |
Ett problem är ju personer som bor i sverige men har ett utländskt namn, då fungerar det ju inte att anpassa efter hur det svenska språket är uppbyggt. Tanken bakom funktionen är iaf att få bort så många som möjligt som fyller i namnet "asdfasdf" eller "ABCDE" eller "jfjfjfjfjfjffjjfjf" osv.
|
En databas som innehåller alla världens namn med diverse stavningar: Nä.
Ett regexp som passeras av alla världens namn: Nä. Såvida du inte har en väldigt speciell applikation på gång känns det nog mest rätt att validera manuellt. Du kan också curla mot exponerade databaser om det kan vara värt besväret... t.ex http://svenskanamn.alltforforaldrar.se/visa/[namnet här] |
Grammatiska regler har inget med saken att göra. Du kan omöjligt validera namn. Däremot kanske du kan få bort många av de falska namn du nämner eftersom de nog ofta skrivs in på liknande sätt.
|
Även om det är svårt (nästan till omöjligt) så borde det gå att göra det från andra änden, dvs göra pattern som matchar felaktiga namn. Dock borde du kanske inte neka dessa besökare, istället kan det vara bättre att göra manuell kontroll eller att ett email skickas när en sådan besökare registreras så du enkelt kan hantera det. I Regular expression kan du enkelt se om bokstäver upprepar sig eller om man skriver bokstäverna i följd. Jag gjorde själv ett liknande script för att försöka få användare att välja bättre lösenord.
Den här kanske kan vara till lite hjälp: http://stackoverflow.com/questions/9...ithin-a-string |
Nog bättre med en blacklist än en whitelist.
Kör ett tag med manuell validering och lägg alla felaktiga namn i en blacklist. |
Citat:
|
Någon form av koppling mot folkbokföringen är väl det enda som kan fungera. Men det finns folk som är folkbokförda med en stavning och regelmässigt använder sig av en annan.
|
Citat:
|
Citat:
|
För de exempel du nämnt kan du ju kolla om namnet innehåller en serie om 4-5 eller fler tecken som ligger efter varandra i alfabetet. Och kolla ifall det finns X antal eller flera upprepningar av serier på 2-3 tecken. Men det är inte värt besväret, för som tartareandesire säger kommer ju en användare köra på falskt namn om han/hon vill vara anonym.
|
Citat:
|
Citat:
|
Citat:
|
Jag antar att du kommer neka de som skriver jfjfjfjfj som namn att registrera sig med ett felmeddelande och sannolikheten då är väl snarare att de provar med något mer rimligt och då får du istället en massa användare som du inte ens manuellt kan rensa ut på något enkelt sätt - vad är meningen med det?
|
Man skulle kunna kolla mot en lista med riktiga namn och om namnet finns med flaggas det automatiskt som validerat. Då blir det inte lika många namn som behöver valideras manuellt. Kan även kombineras med en blacklist. När man sedan validerar manuellt kan namnet läggas till i någon av listorna.
|
Ett bayesiskt filter borde fungera perfekt för ändamålet.
|
Citat:
|
Det här får mig att tänka på en artikel jag läste för någon månad sedan, som känns ganska relevant: Falsehoods Programmers Believe About Names
|
Jag har tjejkompis som heter "Ng" i efternamn, svårt att matcha mot det med något som även ska ta Andersson, men inte asdasdasd...
:/ |
Alla tider är GMT +2. Klockan är nu 11:48. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson