user3189734
user3189734

Reputation: 665

Laravel 4 regex email validation

I am trying to add validation, inside my User model to validation emails using regex.

However, it's spits a dummy out at the first apostrophe.

'email' => 'required|regex:/^[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])?)*$/',

Upvotes: 1

Views: 3488

Answers (2)

nozzleman
nozzleman

Reputation: 9649

As the answer to this question on SO states, there is no simple regular expression to validate an email-address. Using your RegEx could maybe catch valid addresses (although that's just speculation of mine). Using the email-validation-rule would be my first choice.

But you are right, this is just the server side in the first place, if you ignore redirecting users back with input and error messages..

On the client-side, you would have some options. The first one would be to simply rely on the build in browser-validation, by declaring the corresponding input-field as an email-address which you should do anyway:

{{ Form::email($name, $value = null, $attributes = array()) }}

Another, more advanced way would be to create some kind of helper to check the typed input via Ajax using the same validation rule and returning the error messages or sth. similar. This could be an additional route to your Model-Resource for example. This way, you would be stable and consistent.

Upvotes: 1

ART GALLERY
ART GALLERY

Reputation: 540

Have you tried the 'email' validation rule?

'email' => 'required|email|unique:users,email'

http://laravel.com/docs/4.2/validation#rule-email

Upvotes: 3

Related Questions