## 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}" indicates that the character class preceding occurs three 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}$/;
                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 }
           }
         });
      });