浏览代码

Add emailAddress validator

nghuuphuoc 12 年之前
父节点
当前提交
3b3b2e987e
共有 3 个文件被更改,包括 25 次插入1 次删除
  1. 4 0
      demo/index.html
  2. 21 0
      src/js/validator/emailAddress.js
  3. 0 1
      src/js/validator/identical.js

+ 4 - 0
demo/index.html

@@ -12,6 +12,7 @@
     <script type="text/javascript" src="../vendor/jquery/jquery-1.10.2.min.js"></script>
     <script type="text/javascript" src="../vendor/bootstrap/js/bootstrap.min.js"></script>
     <script type="text/javascript" src="../src/js/bootstrapValidate.js"></script>
+    <script type="text/javascript" src="../src/js/validator/emailAddress.js"></script>
     <script type="text/javascript" src="../src/js/validator/identical.js"></script>
     <script type="text/javascript" src="../src/js/validator/notEmpty.js"></script>
     <script type="text/javascript" src="../src/js/validator/regexp.js"></script>
@@ -77,6 +78,9 @@ $(document).ready(function() {
                 validator: {
                     notEmpty: {
                         message: 'The email address is required and can\'t be empty'
+                    },
+                    emailAddress: {
+                        message: 'The input is not a valid email address'
                     }
                 }
             },

+ 21 - 0
src/js/validator/emailAddress.js

@@ -0,0 +1,21 @@
+(function($) {
+    $.extend($.bootstrapValidator.validator, {
+        emailAddress: {
+            /**
+             * Return true if and only if the input value is a valid email address
+             *
+             * @param {bootstrapValidator} validateInstance Validate plugin instance
+             * @param {HTMLElement} element
+             * @param {Object} options
+             * @returns {boolean}
+             */
+            validate: function(validateInstance, element, options) {
+                var value       = $.trim($(element).val()),
+                    // Email address regular expression
+                    // http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
+                    emailRegExp = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+                return emailRegExp.test(value);
+            }
+        }
+    });
+}(window.jQuery));

+ 0 - 1
src/js/validator/identical.js

@@ -12,7 +12,6 @@
              */
             validate: function(validateInstance, element, options) {
                 var value        = $(element).val(),
-                    $field       = $(element),
                     $compareWith = validateInstance.getForm().find('[name="' + options.field + '"]');
                 if (value == $compareWith.val()) {
                     validateInstance.removeError($compareWith);