These are extra parsley validation rules that translate well to laravel's own validation rules.
Be sure to take a look at the examples included in the repo.
The documentation is also quite handy.
npm install parsley-laravel-extras
Next you can import or require it in your js:
require('parsley-laravel-extras')
import 'parsley-laravel-extras'
Or just include dist/laravel-parsley.js right after where you've included parsley.js.
Note Don't forget to include moment.js if you're using date validation.
Note If you'd like support for < IE9, include es5-shim.
Several date validation rules make use of a config option. This option let's you decide what formats are valid.
By default it looks for the following formats (in order):
window.Parsley.options.dateFormats = ['DD/MM/YY', 'DD/MM/YYYY', 'MM/DD/YY', 'MM/DD/YYYY', 'YY/MM/DD', 'YYYY/MM/DD'];
MomentJS does this strictly, meaning separators are also taken into account.
You can set your valid date formats the same way (this means that all parsley instances will get this assigned by default).
Or you can set it on your parsley instance:
$('form').parsley({
dateFormats: ['DD-MM-YY', 'DD-MM-YYYY', 'MM-DD-YY', 'MM-DD-YYYY', 'YY-MM-DD', 'YYYY-MM-DD']
});
Most rules have been included. However I won't tag this repo as a 1.0
release untill I figure out a way to also emulate the way laravel validates arrays.
Here's an overview of all the Laravel rules and how they can be implemented.
All the linked rules can be used through this library, the textual rules are in Parsley by default.
Laravel | Parsley |
---|---|
accepted | |
active_url | |
after:date | DateAfter |
alpha | pattern="^[a-zA-Z]+$" |
alpha_dash | pattern="^[a-zA-Z_-]+$" |
alpha_num | type="alphanum" |
array | |
before:date | DateBefore |
between:min,max | FileSizeBetween |
Between | |
boolean | |
confirmed | equalTo |
date | Date |
date_format:format | DateFormat |
different:field | Different |
digits:value | SizeNumber |
digits_between:min,max | Between |
dimensions | Dimensions |
distinct | Distinct |
type="email" | |
exists:table,column | remote |
file | |
filled | required |
image | Image |
in:foo,bar,... | In |
in_array:anotherfield | InArray |
integer | type="integer" |
ip | |
json | |
max:value | fileSizeMax |
max(number) | |
mimetypes:text/plain,... | Mimetypes |
mimes:foo,bar,... | FileExt |
min:value | fileSizeMin |
min (number) | |
not_in:foo,bar,... | NotIn |
numeric | type="digits" |
present | |
regex:pattern | pattern |
required | required |
required_if:anotherfield,value,... | RequiredIf |
required_unless:anotherfield,value,... | RequiredUnless |
required_with:foo,bar,... | RequiredWith |
required_with_all:foo,bar,... | RequiredWithAll |
required_without:foo,bar,... | RequiredWithout |
required_without_all:foo,bar,... | RequiredWithoutAll |
same:field | equalto |
size:value | fileSize |
SizeNumber | |
SizeString | |
string | |
timezone | |
unique:table,column,except,idColumn | remote |
url | type="url" |