Laravel validator for alphabetic characters and spaces

This is just a short one.. Have you ever received an error back from your name validators, when you type in a name like "Ana Maria"? Laravel doesn't have a built in validator for alphabetic characters and spaces, but it does give us everything we need to build one.

This is how I do it:

* app/validators.php

Validator::extend('alpha_spaces', function($attribute, $value)
    return preg_match('/^[\pL\s]+$/u', $value);

It matches unicode characters, so poor João Gabriel won't have his name marked as invalid anymore :)

Define your custom validation message in lang/xx/validation.php:

| Custom Validation Rules
| Custom rules created in app/validators.php
"alpha_spaces"     => "The :attribute may only contain letters and spaces.",

Use it as usual:

$rules = array(
        'name' => 'required|alpha_spaces',

And don't forget to require the validators.php file in start/global.php somewhere at the end:

require app_path().'/validators.php';

Here's the gist, feel free to make it better.

comments powered by Disqus