ソースを参照

Merge pull request #168 from jswale/master

Add siren and siret validators
Phuoc Nguyen 11 年 前
コミット
6fa05272d5
2 ファイル変更80 行追加0 行削除
  1. 40 0
      src/js/validator/siren.js
  2. 40 0
      src/js/validator/siret.js

+ 40 - 0
src/js/validator/siren.js

@@ -0,0 +1,40 @@
+;(function($) {
+	$.fn.bootstrapValidator.validators.siret = {
+		html5Attributes : {
+			'message' : 'message'
+		},
+
+		/**
+		 * Check if a string is a siren
+		 *
+		 * @param {BootstrapValidator}
+		 *          validator The validator plugin instance
+		 * @param {jQuery}
+		 *          $field Field element
+		 * @param {Object}
+		 *          options Consist of key: - message: The invalid message
+		 * @returns {Boolean}
+		 */
+		validate : function(validator, $field, options) {
+			var value = $field.val();
+			if (value == '') {
+				return true;
+			}
+
+			var sum = 0;
+			var tmp;
+			for (var cpt = 0; cpt < value.length; cpt++) {
+				if ((cpt % 2) == 1) {
+					tmp = value.charAt(cpt) * 2;
+					if (tmp > 9) {
+						tmp -= 9;
+					}
+				} else {
+					tmp = value.charAt(cpt);
+				}
+				sum += parseInt(tmp);
+			}
+			return ((sum % 10) == 0);
+		}
+	};
+}(window.jQuery));

+ 40 - 0
src/js/validator/siret.js

@@ -0,0 +1,40 @@
+;(function($) {
+	$.fn.bootstrapValidator.validators.siret = {
+		html5Attributes : {
+			'message' : 'message'
+		},
+
+		/**
+		 * Check if a string is a siret
+		 *
+		 * @param {BootstrapValidator}
+		 *          validator The validator plugin instance
+		 * @param {jQuery}
+		 *          $field Field element
+		 * @param {Object}
+		 *          options Consist of key: - message: The invalid message
+		 * @returns {Boolean}
+		 */
+		validate : function(validator, $field, options) {
+			var value = $field.val();
+			if (value == '') {
+				return true;
+			}
+
+			var sum = 0;
+			var tmp;
+			for (var cpt = 0; cpt < value.length; cpt++) {
+				if ((cpt % 2) == 0) {
+					tmp = value.charAt(cpt) * 2;
+					if (tmp > 9) {
+						tmp -= 9;
+					}
+				} else {
+					tmp = value.charAt(cpt);
+				}
+				sum += parseInt(tmp);
+			}
+			return ((sum % 10) == 0);
+		}
+	};
+}(window.jQuery));