## Form Validation - defining a custom rule

- form4.html

Here we define a new validation rule called "netid" (three characters and three numbers, e.g. 'abc123')

- jQuery.validator.addMEthod(name, method [,message])
- Regular expression `var pattern = /^[a-zA-Z]{3}[0-9]{3}$/;`
  this is a regular expression pattern (regex) that matches three characters (e.g. abc) followed by three numbers (e.g. 123).
  - "^" matches the beginning of the string
  - "[a-zA-Z]" defines a character class of all lower and upper alphabetic characters
  - "{3}" indicates that the character class preceding occurs three times
  - "[0-9]" defines a character class of numbers - e.g. 0,1,2,3,4,5,6,7,8,9
  - "{3,4}" indicates that the character class preceding occurs at least three times and at most four times
  - "$" matches the end of the string
  - `pattern.test(value)` returns `true` or `false`, depending on whether the 'value' matches the pattern

          $(document).ready( function() {
            /* addMethod for netid validation */
            $.validator.addMethod(
              "netid",
               function(value, element) {
                  var pattern = /^[a-zA-Z]{3}[0-9]{3,4}$/;
                  return this.optional( element ) || pattern.test( value );
               },
               'Please enter a valid NetID (e.g. abc123).'
             );
          var validation = $("#myForm").validate(
           {
             rules: {
               name: { required: true, minlength: 2 },
               email: { required: true, email: true },
               netid: { required: true, netid: true }
             }
           });
        });