Falsehoods programmers believe about names
Your signup form probably rejects real people's names. Here are the false beliefs behind it — and the inputs that break naive validation.
A name field looks trivial. It is not. The moment you split it into “first” and “last”, require ASCII, cap the length, or strip punctuation, you start rejecting real, valid people — and every rejected signup is a customer you lost before they typed a password.
The falsehoods
- People have a first name and a last name.
Cher,Madonna, and millions of people with mononyms do not. - Names are ASCII.
José,François,Müller,李,علي,Владимирare all real names. - Names have no punctuation.
O’Brien,D’Angelo,Anne-Marie, andvan der Bergsay otherwise. - Names are short. Some legal names run well past your
maxlength=“20”. - Names never change. Marriage, divorce, and gender transitions all change them.
- Names are written left to right. Arabic and Hebrew names are not.
The only honest rules: a name has at least one letter, and isn’t absurdly long. Everything else is a guess that excludes someone.
How humaneforms handles it
The demo above runs the real validateName. Paste any name from the list — it’s accepted, trimmed, and Unicode-normalized, never rejected. That’s the whole point: a humane form takes the input and gets out of the way.
npm install @humaneforms/react for the free field, or get the Pack for the styled, multi-field set.