PageSourceSearch

https://www.sagehmis.info/Includes/Javascript/passwordRulesHelper.js?ver=20241119050447

js sagehmis.info collected 2026-09-28 08:47:32 UTC 4,707 bytes, 122 lines download raw bytes

1(function ($) {
2
3    $.fn.passwordRulesValidator = function (aOptions) {
4
5
6        // Define default's parameters
7        var aDefauts =
8                {
9                    'rules': {
10                        'length': {
11                            'regex': '.{6,}',
12                            'name': 'length',
13                            'message': '6 Characters',
14                            'enable': true
15                        },
16                        'uppercase': {
17                            'regex': '[A-Z]{1,}',
18                            'name': 'uppercase',
19                            'message': '1 Uppercase Letter',
20                            'enable': true
21                        },
22                        'specialChar': {
23                            'regex': '[^a-zA-Z0-9]{1,}',
24                            'name': 'special-char',
25                            'message': '1 Special Character',
26                            'enable': true
27                        },
28                        'number': {
29                            'regex': "[0-9]{1,}",
30                            'name': "number",
31                            'message': "1 Number",
32                            'enable': !0
33                        },
34                    },
35                    'msgRules': 'Your password must contain:',
36                    'container': $("#pwdInfoContainer"),
37                    'containerClass': null,
38                    'containerId': 'pwdInfoContainer',
39                    'okClass': null,
40                    'koClass': null,
41                    'onLoad': undefined
42                };
43
44        /**
45         * @param {object} oRegex
46         * @param {string} sVal
47         * @param {string} sName
48         * @param {string} sIdContainer
49         */
50        function validateRule(oRegex, sVal, sName, sIdContainer) {
51            if (oRegex.test(sVal)) {
52                $('#' + sIdContainer + ' li.' + sName).removeClass('ko ' + aParameters.koClass).addClass('ok ' + aParameters.okClass);
53            } else {
54                $('#' + sIdContainer + ' li.' + sName).removeClass('ok ' + aParameters.okClass).addClass('ko ' + aParameters.koClass);
55            }
56        }
57
58        /**
59         * @param {array} aParemeters
60         * @param {string} sVal
61         * @param {string} sIdContainer
62         */
63        function checkRules(aParemeters, sVal, sIdContainer) {
64            $.each(aParameters.rules, function (iKey, aRule) {
65                if (aRule.enable) {
66                    validateRule(new RegExp(aRule.regex, 'g'), sVal, aRule.name, sIdContainer);
67                }
68            });
69
70        }
71
72        var aParameters = $.extend(true, aDefauts, aOptions);
73
74        return this.each(function () {
75
76            // Execute onLoad fonction
77            if ($.isFunction(aParameters.onLoad)) {
78                aParameters.onLoad();
79            }
80
81            // Build rules check list
82            oRulesBuilder = '<span class="rules">' + aParameters.msgRules + '</span>';
83            oRulesBuilder += '<ul class="rules">';
84
85            // Build lists
86            $.each(aParameters.rules, function (iKey, aRule) {
87                if (aRule.enable) {
88                    oRulesBuilder += '<li class="ko ' + aParameters.koClass + ' ' + aRule.name + '">' + aRule.message + '</li>';
89                }
90            });
91
92            oRulesBuilder += '</ul>';
93
94            // Create or populate container
95            if (typeof (aParameters.container) === 'undefined') {
96                $(this).after('<div class="rules-list ' + aParameters.containerClass + '" id="' + aParameters.containerId + '"></div>');
97                $(oRulesBuilder).appendTo('#' + aParameters.containerId);
98            } else {
99                aParameters.container.addClass('rules-list');
100                $(oRulesBuilder).appendTo(aParameters.container);
101            }
102
103            var sIdContainer = typeof (aParameters.container) === 'undefined' ? aParameters.containerId : aParameters.container.attr('id');
104
105            // Execute checkRules on load
106            checkRules(aParameters, $(this).val(), sIdContainer);
107
108            // Execute checkRules fonction
109            $(this).keyup(function () {
110                checkRules(aParameters, $(this).val(), sIdContainer);
111            });
112
113            $(this).on('paste', function () {
114                checkRules(aParameters, $(this).val(), sIdContainer);
115            });
116
117            $(this).change(function () {
118                checkRules(aParameters, $(this).val(), sIdContainer);
119            });
120        });
121    };
122})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.