milwad/laravel-validate

Write rules easy & fast

v1.7.2 2023-08-07 10:23 UTC

This package is auto-updated.

Last update: 2024-02-02 16:39:16 UTC


README

laravel-validate-banner

PHP Version Require Latest Stable Version Total Downloads License Passed Tests Quality Score Check Imports

Laravel validate is a package for validation faster & easier.
You can validate data easier, Laravel validate have lots of rule class for validation.
This package support localization and you can use it for most of the language.
(If some language didn't support, you can PR for new language)

Requirements

  • PHP >= 8.0
  • Laravel >= 9.0
  • Morilog-Jalali >= 3.x
GitHub L6 L7 L8 L9 L10
1.5
1.6
1.7

Installation

You can install the package with Composer.

composer require milwad/laravel-validate

Publish

If you want to publish a lang file for a custom validation message you can run this command in the terminal:

php artisan vendor:publish --tag="validate-lang-{$lang}"

You can replace $lang with your lang name, for ex:

php artisan vendor:publish --tag="validate-lang-en"

If you don't know about langs name you can go Support Languages

Usage

You can use Laravel-Validate Rules very simply. You can use the new keyword before the rule name.

use Milwad\LaravelValidate\Rules\ValidPhoneNumber;

return [
    'phone' => ['required', new ValidPhoneNumber()],
];

Rules

# Rule name Usage
1 ValidBitcoinAddress Validate bitcoin address for ex (1KFHE7w8BhaENAswwryaoccDb6qcT6DbYY)
2 ValidCapitalCharWithNumber Validate String for ex (MILWAD-84)
3 ValidDiscordUsername Validate username discord for ex (Milwad#2134)
4 ValidHashtag Validate hashtag for ex (#milwad)
5 ValidIpAddressIPV4 Validate ip address IPV4 for ex (129.144.50.56)
6 ValidIpAddressIPV6 Validate ip address IPV6 for ex (2001:db8:3333:4444:5555:6666:7777:8888)
7 ValidPhoneNumber Validate phone number for ex (09366000000)
8 ValidPort Validate port value for ex (8080)
9 ValidSlug Validate slug for ex (milwad-dev)
10 ValidImei Validate imei phone for ex (354809104295874)
11 ValidStrongPassword Validate password for ex (Milwad123!)
12 ValidUrl Validate url for ex (https://www.google.com)
13 ValidUsername Validate username for ex (milwad)
14 ValidUuid Validate uuid for ex (123e4567-e89b-12d3-a456-426655440000)
15 ValidHexColor Validate hex color for ex (#fcba03)
16 ValidHtmlTag Validate html tags for ex (<h1></h1>)
17 ValidNationalCard Validate national card for ex (015016437)
18 ValidCarNumber Validate car number for ex (KA01AB1234)
19 ValidNameDaysWeek Validate day week for ex (monday)
20 ValidEvenNumber Validate number is even for ex (1024)
21 ValidOddNumber Validate number is odd for ex (4321)
22 ValidSlashEndOfString Validate write slash at the string for ex (milwad/)
23 ValidCartNumberIran Validate cart number for ex (1234123412341234)
24 ValidBase64 Validate base64 for ex (bWlsd2Fk)
25 ValidJwt Validate jwt
26 ValidJalaliDate Validate jalali date for ex (1384/8/25)
27 ValidDuplicateCharacter Validate duplicate characters for ex (1,2,3,4,5,6,7,8,9)
28 ValidPattern Validate texts with specific pattern 🔥 for ex (4444-4444-4444)
29 ValidDuplicate Validate duplicate string, numbers for ex (1123456)
30 ValidUlid Validate ulid for ex (01ARZ3NDEKTSV4RRFFQ69G5FAV)
31 ValidDomain Validate domain name for ex (github.com)
32 ValidCamelCase Validate camel case for ex (milwadDev)
33 ValidPascalCase Validate pascal case for ex (MilwadDev)
34 ValidKebabCase Validate kebab case for ex (milwad-dev)
35 ValidSnakeCase Validate snake case for ex (milwad_dev)
36 ValidVatId Validate european VAT ID ex (EL123456789123)
37 ValidIban Validate IBAN ex (IR062960000000100324200001)
38 ValidIranPostalCode Validate Iran postal code ex (3354355599)

Rules

ValidPattern

Sometimes you need to validate text with a pattern, For example, you want to validate a text like (4444-4444-4444). If you want to check the length of the text is separate after - is 4, You can use this Rule:

use Milwad\LaravelValidate\Rules\ValidPattern;

return [
    'numbers' => ['required', new ValidPattern(4, '-')],
];

ValidIban

Sometimes you need to validate Iban(International Bank Account Number) code. You can use the ValidIban rule:

use Milwad\LaravelValidate\Rules\ValidIban;

return [
    'iban' => ['required', new ValidIban()], // iban => SC74MCBL01031234567890123456USD
];

Also, You can use the Country class and add a list of countries to the ValidIban rule. By doing this your IBAN must belong to one of the countries you pass to the validation class:

use Milwad\LaravelValidate\Rules\ValidIban;
use Milwad\LaravelValidate\Utils\Country;

return [
    'iban' => ['required', new ValidIban(Country::IRAN, Country::SEYCHELLES)], // iban => SC74MCBL01031234567890123456USD
];

Support Languages

If a language is not supported, you can make issue to add it.
Also, you can make PR to add it.

  • Arabic (ar)
  • Azerbaijani (az)
  • Bangla (bn)
  • Catalan (ca)
  • German (de)
  • Greek (el)
  • English (en)
  • Spanish (es)
  • Persian (fa)
  • French (fr)
  • Hindi (hi)
  • Indonesian (id)
  • Italian (It)
  • Japanese (ja)
  • Korean (ko)
  • Kurdish Sorani (ku_so)
  • Português Brasil (pt_BR)
  • Russian (ru)
  • Sinhala (si)
  • Swedish (sv)
  • Turkish (tr)
  • Ukrainian (uk)
  • Chinese (zh_CN)

License

  • This package is created and modified by Milwad Khosravi for Laravel upper more than 9 and is released under the MIT License.

Contributing

This project exists thanks to all the people who contribute. CONTRIBUTING

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f6c61726176656c2d76616c69646174652f636f6e7472696275746f72732e7376673f77696474683d38393026627574746f6e3d66616c7365

Security

If you've found a bug regarding security please mail milwad.dev@gmail.com instead of using the issue tracker.

Star History

Star History Chart

Donate

If this package is helpful for you, you can buy a coffee for me :) ❤️

Iranina Gateway: https://payping.ir/@milwad-dev Paypal Gateway: SOON