All Projects → ghiscoding → Angular Validation

ghiscoding / Angular Validation

Licence: mit
AngularJS Form Validation made simple

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Angular Validation

Angular Validation
[INACTIVE] Client Side Validation for AngularJS 1. (You should use version > 2 💥)
Stars: ✭ 714 (+193.83%)
Mutual labels:  validation, angularjs
Angular Validate
Painless form validation for AngularJS. Powered by the jQuery Validation Plugin.
Stars: ✭ 71 (-70.78%)
Mutual labels:  validation, angularjs
Valdr
A model centric approach to AngularJS form validation
Stars: ✭ 158 (-34.98%)
Mutual labels:  validation, angularjs
Schematics
Project documentation: https://schematics.readthedocs.io/en/latest/
Stars: ✭ 2,461 (+912.76%)
Mutual labels:  validation
30 Seconds Of Angular
[WIP] Curated collection of Angular snippets that you can understand in 30 seconds or less
Stars: ✭ 221 (-9.05%)
Mutual labels:  angularjs
Swiftvalidators
String (and more) validation for iOS
Stars: ✭ 226 (-7%)
Mutual labels:  validation
Validictory
🎓 deprecated general purpose python data validator
Stars: ✭ 242 (-0.41%)
Mutual labels:  validation
Mf Geoadmin3
map.geo.admin.ch source code
Stars: ✭ 215 (-11.52%)
Mutual labels:  angularjs
Ngx Quill Editor
🍡@quilljs editor component for @angular
Stars: ✭ 234 (-3.7%)
Mutual labels:  angularjs
Php Validate
Lightweight and feature-rich PHP validation and filtering library. Support scene grouping, pre-filtering, array checking, custom validators, custom messages. 轻量且功能丰富的PHP验证、过滤库。支持场景分组,前置过滤,数组检查,自定义验证器,自定义消息。
Stars: ✭ 225 (-7.41%)
Mutual labels:  validation
Resolvers
📋 Validation resolvers: Zod, Yup, Joi, Superstruct, and Vest.
Stars: ✭ 222 (-8.64%)
Mutual labels:  validation
Javastud
Official, Main: This is Core/Advance java example series project. It help to learn java step by step using pdf tutorial provided here and corresponding demo project for the eclipse. Tag: Java Student, Java Stud, Stud Java, StudJava, Java Teachers, Studs Quick Start Guide, Studs Java, Object Oriented Programming, Core Java, Java SE, Java EE, Java Enterprise Edition, Java Blog, Java Articles, Java Web, JSP, Servlet, Maven, Spring, Hibernate, Spring-boot, Spring MVC Web, Angular JS, Angular 2, Java Security, Java CRUD, Java Login Example, File Handling, Multi threading, exception handling, Collection classes, Swing, Database, Date Time, Joda Time, JPA.
Stars: ✭ 220 (-9.47%)
Mutual labels:  angularjs
Massautocomplete
Auto Complete for Angularjs applications with a lot to complete
Stars: ✭ 231 (-4.94%)
Mutual labels:  angularjs
Netdevpack
A smart set of common classes and implementations to improve your development productivity.
Stars: ✭ 220 (-9.47%)
Mutual labels:  validation
Truss
Assertions API for Clojure/Script
Stars: ✭ 239 (-1.65%)
Mutual labels:  validation
Angular Meteor
Angular and Meteor - The perfect stack
Stars: ✭ 2,385 (+881.48%)
Mutual labels:  angularjs
Webcam Directive
Angularjs directive to access the webcam
Stars: ✭ 233 (-4.12%)
Mutual labels:  angularjs
Spring Dubbo Service
微服务 spring dubbo项目:dubbo rpc;druid数据源连接池;mybatis配置集成,多数据源;jmx监控MBean;定时任务;aop;ftp;测试;Metrics监控;参数验证;跨域处理;shiro权限控制;consul服务注册,发现;redis分布式锁;SPI服务机制;cat监控;netty服务代理;websocket;disconf;mongodb集成;rest;docker;fescar
Stars: ✭ 224 (-7.82%)
Mutual labels:  validation
Ng Quill
AngularJS Component for Quill rich text editor
Stars: ✭ 223 (-8.23%)
Mutual labels:  angularjs
Password Validator
Validates password according to flexible and intuitive specification
Stars: ✭ 224 (-7.82%)
Mutual labels:  validation

Angular Validation (Directive / Service)

Version: 1.5.28

Project in Life Support

still accepting PR for any bug fix

Also note that only NPM will updated with new releases when PR get merged

This project is now in Life Support since most of us already moved to newer version of Angular. However I do want to point out that if you still use the lib and find a Bug, I certainly still welcome PR (Pull Request) to address bug fixes. So I'm not totally gone but I won't personally invest more time in the lib. Also note that the lib will not be rewritten to support Angular 2+

On a totally different note, I'm still very active in the Angular 4+ world (even Aurelia world) and you might be interested in looking at some of my other libraries.

In the Aurelia world


Forms Validation with Angular made easy!

(Concept comes from the amazing Laravel)

Form validation after user stop typing (debounce default of 1sec). Angular-Validation is an angular directive/service with locales (languages) with a very simple approach of defining your validation="" directly within your element to validate (input, textarea, etc) and...that's it!!! The directive/service will take care of the rest!

The base concept is not new, it comes from the easy form input validation approach of Laravel Framework as well as PHP Gump Validation. They are both PHP frameworks and use a very simple approach, so why not re-use the same concept over Angular as well? Well it's now made available with a few more extras.

For a smoother user experience, I also added validation on inactivity (timer/debounce). So validation will not bother the user while he is still typing... though as soon as the user pauses for a certain amount of time, then validation comes into play. It's worth knowing that this inactivity timer is only available while typing, if user focuses away from his input (onBlur) it will then validate instantly.

Supporting AngularJS 1.3.x-1.5.x branch (current code should work with 1.2.x just the same, but is no more verified)

Now support Service using the same functionalities as the Directive. Huge rewrite to have a better code separation and also adding support to Service functionalities. Specifically the validation-rules was separated to add rules without affecting the core while validation-common is for shared functions (shared by Directive/Service).

Validation Summary was also recently added to easily show all validation errors that are still active on the form and you can also use 2 ways of dealing with the Submit and Validation button.

For more reasons to use it, see the answered question of: Why Use It?

If you like the Angular-Validation project and you use it, please click on the ⭐️ and add it as a favorite. The more star ratings there is, the more chances it could be found by other users inside the popular trend section. That is the only support I ask you... thanks and enjoy it ;)

Live Demo

Plunker

Tested with Protractor

Angular-validation now has a full set of End-to-End tests with Protractor, there is over 1800+ assertions, it starts by testing the original live demo page and then goes on with a complete test suite of All Validators in both the Angular-Validation Directive and Service.

Why use angular-validation?

Angular-validation was develop with simplicity and DRY (Don't Repeat Yourself) concept in mind. You can transform this:

<input type="text" name="username" ng-model="user.username" ng-minlength="3" ng-maxlength="8" required />
<div ng-show="form.$submitted || form.user.$touched">
  <span ng-show="userForm.username.$error.minlength" class="help-block">Username is too short.</p>
  <span ng-show="userForm.username.$error.maxlength" class="help-block">Username is too long.</p>
</div>
<input type="text" name="firstname" ng-model="user.firstname" ng-minlength="3" ng-maxlength="50" required />
<div ng-show="form.$submitted || form.user.$touched">
  <span ng-show="userForm.firstname.$error.minlength" class="help-block">Firstname is too short.</p>
  <span ng-show="userForm.firstname.$error.maxlength" class="help-block">Firstname is too long.</p>
</div>
<input type="text" name="lastname" ng-model="user.lastname" ng-minlength="2" ng-maxlength="50" required />
<div ng-show="form.$submitted || form.user.$touched">
  <span ng-show="userForm.lastname.$error.minlength" class="help-block">Lastname is too short.</p>
  <span ng-show="userForm.lastname.$error.maxlength" class="help-block">Lastname is too long.</p>
</div>

into the following (errors will automatically be displayed in your chosen locale translation):

<input type="text" name="username" ng-model="user.username" validation="min_len:3|max_len:8|required"  />
<input type="text" name="firstname" ng-model="user.firstname" validation="alpha_dash|min_len:3|max_len:50|required"  />
<input type="text" name="lastname" ng-model="user.lastname" validation="alpha_dash|min_len:2|max_len:50|required"  />

The Angular-Validation will create, by itself, the necessary error message. Now imagine your form having 10 inputs, using the documented Angular way will end up being 30 lines of code, while on the other hand Angular-Validation will stay with 10 lines of code, no more... so what are you waiting for? Use Angular-Validation!!! Don't forget to add it to your favorite, click on the ⭐️ on top :)

Let's not forget the Validation Summary which is also a great and useful way of displaying your errors to the user.

Another awesome feature recently added is the Wiki - Remote Validation (AJAX) which is useful for backend server validation.

Again another recently added feature, external 3rd party addon validation (like ngTagsInput or Angular Multi-Select), take a look at the Wiki - 3rd party addon validation

Angular-Validation Wiki

All the documentation has been moved to the Wiki section, see the github wiki for more explanation. If you just started with the library, then the most important page to read would be the HOWTO - Step by Step

Wiki Contents

Download and Install it

Install with Bower

// bower install with
bower install angular-validation-ghiscoding

Install with NPM

// NPM install with
npm install angular-validation-ghiscoding

Install with NuGet (see the NuGet Package Here)

PM> Install-Package Angular-Validation-Ghiscoding

When used with IIS, you will need to map the JSON type

<staticContent>
    <mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>

License

MIT License

Available Validator Rules

All validators are written as snake_case but it's up to the user's taste and could also be used as camelCase. So for example alpha_dash_spaces and alphaDashSpaces are both equivalent.

NOTE: on an input type="number", the + sign is an invalid character (browser restriction) even if you are using a signed validator. If you really wish to use the +, then change your input to a type="text".
  • accepted The field under validation must be yes, on, 1, or true. Useful for validating "Terms of Service" acceptance.

  • alpha Only alpha characters (including latin) are present (a-z, A-Z)

  • alpha_spaces Only alpha characters (including latin) and spaces are present (a-z, A-Z)

  • alpha_num Only alpha-numeric characters (including latin) are present (a-z, A-Z, 0-9)

  • alpha_num_spaces Only alpha-numeric characters (with latin & spaces) are present (a-z, A-Z, 0-9)

  • alpha_dash Only alpha-numeric characters + dashes, underscores are present (a-z, A-Z, 0-9, _-)

  • alpha_dash_spaces Alpha-numeric chars + dashes, underscores and spaces (a-z, A-Z, 0-9, _-)

  • between:min,max Will auto-detect value type then use proper validator.

    • Type Number uses between_num, String use between_len.
  • between_date_iso:d1,d2 Alias of between_date_iso.

  • between_date_euro:d1,d2 Alias of date_euro_between.

  • between_date_euro_long:d1,d2 Alias of date_euro_long_between.

  • between_date_euro_short:d1,d2 DEPRECATED does not support leap year, preferable to use date_euro_between or make a PR to fix it..

  • between_date_us:d1,d2 Alias of date_us_between.

  • between_date_us_long:d1,d2 Alias of date_us_long_between.

  • between_date_us_short:d1,d2 DEPRECATED does not support leap year, preferable to use date_us or make a PR to fix it..

  • between_len:min,max Ensures the length of a string is between a min,max length.

  • between_num:min,max Ensures the numeric value (int or float) is between a min,max number.

  • boolean Ensures the value is true or false (0 or 1 is also valid).

  • compare Alias of match

  • credit_card Valid credit card number (AMEX, VISA, Mastercard, Diner's Club, Discover, JCB)

  • date_iso Ensure date follows the ISO format (yyyy-mm-dd)

  • date_iso_between:d1,d2 Ensure date follows the ISO format and is between (d1) & (d2)

  • date_iso_max:d Date must follow ISO format and is lower or equal than date (d)

  • date_iso_min:d Date must follow ISO format and is higher or equal than date (d)

  • date_euro Date must follow the European short or long format (dd-mm-yyyy) or (dd/mm/yyyy)

  • date_euro_long Date must follow the European long format (dd-mm-yyyy) or (dd/mm/yyyy)

  • date_euro_between:d1,d2 Date must follow European short or long format and is between (d1) & (d2)

  • date_euro_long_between:d1,d2 Date must follow European long format and is between (d1) & (d2)

  • date_euro_max:d Date must follow European short or long format and is lower or equal than date (d)

  • date_euro_long_max:d Date must follow European long format and is lower or equal than date (d)

  • date_euro_min:d Date must follow European short or long format and is higher or equal than date (d)

  • date_euro_long_min:d Date must follow European long format and is higher or equal than date (d)

  • date_euro_short DEPRECATED does not support leap year, preferable to use date_euro or make a PR to fix it..

  • date_euro_short_between:d1,d2 DEPRECATED does not support leap year, preferable to use date_euro_between or make a PR to fix it..

  • date_euro_short_max:d DEPRECATED does not support leap year, preferable to use date_euro_max or make a PR to fix it..

  • date_euro_short_min:d DEPRECATED does not support leap year, preferable to use date_euro_min or make a PR to fix it..

  • date_us Date must follow the US short or long format (mm-dd-yyyy) or (mm/dd/yyyy)

  • date_us_long Date must follow the US long format (mm-dd-yyyy) or (mm/dd/yyyy)

  • date_us_between:d1,d2 Date must follow the US short or long format and is between (d1) & (d2)

  • date_us_long_between:d1,d2 Date must follow the US long format and is between (d1) & (d2)

  • date_us_max:d Date must follow US short or long format and is lower or equal than date (d)

  • date_us_long_max:d Date must follow US long format and is lower or equal than date (d)

  • date_us_min:d Date must follow US short or long format and is higher or equal than date (d)

  • date_us_long_min:d Date must follow US long format and is higher or equal than date (d)

  • date_us_short DEPRECATED does not support leap year, preferable to use date_us or make a PR to fix it.

  • date_us_short_between:d1,d2 DEPRECATED does not support leap year, preferable to use date_us_between or make a PR to fix it.

  • date_us_short_max:d DEPRECATED does not support leap year, preferable to use date_us_max or make a PR to fix it.

  • date_us_short_min:d DEPRECATED does not support leap year, preferable to use date_us_min or make a PR to fix it.

  • different Alias of different_input

  • different_input:f Must be different from another input field(f), where (f) must be the exact ngModel attribute of input field to compare to. The error message will use the input name or the friendly-name if it was provided on first input, ex.: <input friendly-name="First Name".../> will display :: Field must be different from specified field "First Name".

  • different_input:f,t Must be different from another input field(f), same as (different:f) but also include (t) for alternate input name to be displayed in the error message (it still uses a generic error message, if you really wish to replace the full error message then you should use match:n:alt see :alt)

  • digits:n Ensures that field only has integer numbers and length precisely matches the specified length (n).

  • digits_between:min,max Ensures that field only has integer numbers and is between a min,max length.

  • email Checks for a valid email address

  • email_address Alias of email

  • enum Alias of in_list

  • exact_len:n Ensures that field length precisely matches the specified length (n).

  • float as to be floating value (excluding integer)

  • float_signed Has to be floating value (excluding int), could be signed (-/+) positive/negative.

  • iban To properly validate an IBAN please use Wiki - Custom Validation with an external library like Github arhs/iban.js

  • in Alias of in_list

  • in_list:foo,bar,.. Ensures the value is included inside the given list of values. The list must be separated by ',' and also accept words with spaces for example "ice cream".

  • int Only positive integer (alias to integer).

  • integer Only positive integer.

  • int_signed Only integer, could be signed (-/+) positive/negative (alias to integer_signed).

  • integer_signed Only integer, could be signed (-/+) positive/negative.

  • ip Alias of ipv4

  • ipv4 Check for valid IP (IPv4)

  • ipv6 Check for valid IP (IPv6)

  • match:f Match another input field(f), where (f) must be the exact ngModel attribute of input field to compare to. The error message will use the friendly-name if it was provided on first input, ex.: <input friendly-name="Password".../> will display :: Confirmation field does not match specified field "Password".

  • match:f,t Match another input field(f), same as (match:f) but also include (t) for alternate input name to be displayed in the error message (it still uses a generic error message, if you really wish to replace the full error message then you should use match:n:alt see :alt)

  • match_input Alias of match.

  • max:n Will auto-detect value type then use proper validator.

    • Type Number uses max_num, String use max_len.
  • max_date_iso Alias of date_iso_max.

  • max_date_euro Alias of date_euro_max.

  • max_date_euro_long Alias of date_euro_long_max.

  • max_date_euro_short DEPRECATED does not support leap year, preferable to use max_date_euro or make a PR to fix it.

  • max_date_us Alias of date_us_max.

  • max_date_us_long Alias of date_us_long_max.

  • max_date_us_short DEPRECATED does not support leap year, preferable to use max_date_us or make a PR to fix it.

  • max_len:n Checks field length, no longer than specified length where (n) is length parameter.

  • max_length:n Alias of max_len

  • max_num:n Checks numeric value to be lower or equal than the number (n).

  • min:n Will auto-detect value type then use proper validator.

    • Type Number uses min_num, String use min_len.
  • min_date_iso Alias of date_iso_min.

  • min_date_euro Alias of date_euro_min.

  • min_date_euro_long Alias of date_euro_long_min.

  • min_date_euro_short DEPRECATED does not support leap year, preferable to use min_date_euro or make a PR to fix it.

  • min_date_us Alias of date_us_min.

  • min_date_us_long Alias of date_us_long_min.

  • min_date_us_short DEPRECATED does not support leap year, preferable to use min_date-us or make a PR to fix it.

  • min_len:n Checks field length, no shorter than specified length where (n) is length parameter.

  • min_length:n Alias of min_len

  • min_num:n Checks numeric value to be higher or equal than the number (n).

  • not_in Alias of not_in_list

  • not_in_list:foo,bar,.. Ensures the value is included inside the given list of values. The list must be separated by ',' and also accept words with spaces for example "ice cream".

  • numeric Only positive numeric value (float, integer).

  • numeric_signed Only numeric value (float, integer) can also be signed (-/+).

  • pattern Ensure it follows a regular expression pattern... Refer to Wiki - Regular Expression Pattern on how to use it.

  • phone Check for a valid phone number (Canada/US)

  • phone_international Check for a valid international phone number

  • range Alias of between

  • required Ensures the specified key value exists and is not empty

  • same Alias of match.

  • size Will auto-detect value type then use proper validator.

    • Type Number uses exact_num, String use exact_len.
  • string_len Alias of between_len

  • string_length Alias of between_len

  • time Ensure time follows the format of (hh:mm) or (hh:mm:ss)

  • url Check for valid URL or subdomain

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].