4 ms·
Prompt: 'I'm writing a nodejs javascript application and I need a regex to validate emails in my server. Can you write a regex that will safely and efficiently
by criley2 3y ago
Prompt:
'I'm writing a nodejs javascript application and I need a regex to validate emails in my server. Can you write a regex that will safely and efficiently match emails?'
GPT4 / Gemini Advanced / Claude 3 Sonnet
GPT4: `const emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;`
Full answser: https://justpaste.it/cg4cl https://justpaste.it/cg4cl
Gemini Advanced: `const emailRegex = /^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)$/;`
Full answer: https://justpaste.it/589a5 https://justpaste.it/589a5
Claude 3: `const emailRegex = /^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$/;`
Full answer: https://justpaste.it/82r2v https://justpaste.it/82r2v
- zaxomi 3y agoStill doesn't support internationalized domain names.
- croemer 3y agoTerrible answers as far as I can tell, especially Chat got would throw out many valid email addresses.
- dfawcus 3y agoWhereas email more or less lasts forever (mailbox contents), and has to be backwards compatible with older versions back to (at least) RFC 821/822, or those before. It also allows almost any character (when escaped at 821 level) in the host or domain part (domain names allow any byte value). So a Internet email address match pattern has to be: "..*@..*", anything else can reject otherwise valid addresses. That however does not account for earlier source routed addresses, not the old style UUCP bang paths. However those can probably be ignored for newly generated email. I regularly use an email address with a "+" in the host part. When I used qmail, I often used addresses like: "foo-a/b-bar-tat@DOMAIN". Mainly for auto filtering received messages from mailing lists.