bootstrap_validator_rails 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +32 -0
- data/lib/bootstrap_validator_rails/engine.rb +4 -0
- data/lib/bootstrap_validator_rails/version.rb +3 -0
- data/lib/bootstrap_validator_rails.rb +42 -0
- data/lib/tasks/bootstrap_validator_rails_tasks.rake +4 -0
- data/test/bootstrap_validator_rails_test.rb +13 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/post.rb +3 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +82 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/assets.rb +8 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20140723124112_create_posts.rb +7 -0
- data/test/dummy/db/schema.rb +20 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/ENV=test.log +0 -0
- data/test/dummy/log/development.log +22 -0
- data/test/dummy/log/test.log +781 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/test_helper.rb +15 -0
- data/vendor/assets/javascripts/bootstrapValidator.js +1803 -0
- data/vendor/assets/javascripts/language/de_DE.js +326 -0
- data/vendor/assets/javascripts/language/en_US.js +327 -0
- data/vendor/assets/javascripts/language/es_CL.js +326 -0
- data/vendor/assets/javascripts/language/hu_HU.js +326 -0
- data/vendor/assets/javascripts/language/vi_VN.js +322 -0
- data/vendor/assets/javascripts/language/zh_CN.js +326 -0
- data/vendor/assets/javascripts/language/zh_TW.js +326 -0
- data/vendor/assets/javascripts/validator/base64.js +25 -0
- data/vendor/assets/javascripts/validator/between.js +66 -0
- data/vendor/assets/javascripts/validator/callback.js +40 -0
- data/vendor/assets/javascripts/validator/choice.js +68 -0
- data/vendor/assets/javascripts/validator/creditCard.js +103 -0
- data/vendor/assets/javascripts/validator/cusip.js +55 -0
- data/vendor/assets/javascripts/validator/cvv.js +116 -0
- data/vendor/assets/javascripts/validator/date.js +118 -0
- data/vendor/assets/javascripts/validator/different.js +41 -0
- data/vendor/assets/javascripts/validator/digits.js +24 -0
- data/vendor/assets/javascripts/validator/ean.js +40 -0
- data/vendor/assets/javascripts/validator/emailAddress.js +31 -0
- data/vendor/assets/javascripts/validator/file.js +69 -0
- data/vendor/assets/javascripts/validator/greaterThan.js +61 -0
- data/vendor/assets/javascripts/validator/grid.js +37 -0
- data/vendor/assets/javascripts/validator/hex.js +25 -0
- data/vendor/assets/javascripts/validator/hexColor.js +28 -0
- data/vendor/assets/javascripts/validator/iban.js +246 -0
- data/vendor/assets/javascripts/validator/id.js +815 -0
- data/vendor/assets/javascripts/validator/identical.js +40 -0
- data/vendor/assets/javascripts/validator/imei.js +44 -0
- data/vendor/assets/javascripts/validator/integer.js +28 -0
- data/vendor/assets/javascripts/validator/ip.js +48 -0
- data/vendor/assets/javascripts/validator/isbn.js +86 -0
- data/vendor/assets/javascripts/validator/isin.js +59 -0
- data/vendor/assets/javascripts/validator/ismn.js +59 -0
- data/vendor/assets/javascripts/validator/issn.js +46 -0
- data/vendor/assets/javascripts/validator/lessThan.js +61 -0
- data/vendor/assets/javascripts/validator/mac.js +25 -0
- data/vendor/assets/javascripts/validator/notEmpty.js +32 -0
- data/vendor/assets/javascripts/validator/numeric.js +39 -0
- data/vendor/assets/javascripts/validator/phone.js +84 -0
- data/vendor/assets/javascripts/validator/regexp.js +42 -0
- data/vendor/assets/javascripts/validator/remote.js +70 -0
- data/vendor/assets/javascripts/validator/rtn.js +38 -0
- data/vendor/assets/javascripts/validator/sedol.js +40 -0
- data/vendor/assets/javascripts/validator/siren.js +28 -0
- data/vendor/assets/javascripts/validator/siret.js +38 -0
- data/vendor/assets/javascripts/validator/step.js +64 -0
- data/vendor/assets/javascripts/validator/stringCase.js +36 -0
- data/vendor/assets/javascripts/validator/stringLength.js +81 -0
- data/vendor/assets/javascripts/validator/uri.js +101 -0
- data/vendor/assets/javascripts/validator/uuid.js +46 -0
- data/vendor/assets/javascripts/validator/vat.js +1220 -0
- data/vendor/assets/javascripts/validator/vin.js +49 -0
- data/vendor/assets/javascripts/validator/zipCode.js +162 -0
- data/vendor/assets/stylesheets/bootstrapValidator.css +21 -0
- metadata +233 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
(function($) {
|
|
2
|
+
$.fn.bootstrapValidator.i18n.iban = $.extend($.fn.bootstrapValidator.i18n.iban || {}, {
|
|
3
|
+
'default': 'Please enter a valid IBAN number',
|
|
4
|
+
countryNotSupported: 'The country code %s is not supported',
|
|
5
|
+
country: 'Please enter a valid IBAN number in %s',
|
|
6
|
+
countries: {
|
|
7
|
+
AD: 'Andorra',
|
|
8
|
+
AE: 'United Arab Emirates',
|
|
9
|
+
AL: 'Albania',
|
|
10
|
+
AO: 'Angola',
|
|
11
|
+
AT: 'Austria',
|
|
12
|
+
AZ: 'Azerbaijan',
|
|
13
|
+
BA: 'Bosnia and Herzegovina',
|
|
14
|
+
BE: 'Belgium',
|
|
15
|
+
BF: 'Burkina Faso',
|
|
16
|
+
BG: 'Bulgaria',
|
|
17
|
+
BH: 'Bahrain',
|
|
18
|
+
BI: 'Burundi',
|
|
19
|
+
BJ: 'Benin',
|
|
20
|
+
BR: 'Brazil',
|
|
21
|
+
CH: 'Switzerland',
|
|
22
|
+
CI: 'Ivory Coast',
|
|
23
|
+
CM: 'Cameroon',
|
|
24
|
+
CR: 'Costa Rica',
|
|
25
|
+
CV: 'Cape Verde',
|
|
26
|
+
CY: 'Cyprus',
|
|
27
|
+
CZ: 'Czech Republic',
|
|
28
|
+
DE: 'Germany',
|
|
29
|
+
DK: 'Denmark',
|
|
30
|
+
DO: 'Dominican Republic',
|
|
31
|
+
DZ: 'Algeria',
|
|
32
|
+
EE: 'Estonia',
|
|
33
|
+
ES: 'Spain',
|
|
34
|
+
FI: 'Finland',
|
|
35
|
+
FO: 'Faroe Islands',
|
|
36
|
+
FR: 'France',
|
|
37
|
+
GB: 'United Kingdom',
|
|
38
|
+
GE: 'Georgia',
|
|
39
|
+
GI: 'Gibraltar',
|
|
40
|
+
GL: 'Greenland',
|
|
41
|
+
GR: 'Greece',
|
|
42
|
+
GT: 'Guatemala',
|
|
43
|
+
HR: 'Croatia',
|
|
44
|
+
HU: 'Hungary',
|
|
45
|
+
IE: 'Ireland',
|
|
46
|
+
IL: 'Israel',
|
|
47
|
+
IR: 'Iran',
|
|
48
|
+
IS: 'Iceland',
|
|
49
|
+
IT: 'Italy',
|
|
50
|
+
JO: 'Jordan',
|
|
51
|
+
KW: 'Kuwait',
|
|
52
|
+
KZ: 'Kazakhstan',
|
|
53
|
+
LB: 'Lebanon',
|
|
54
|
+
LI: 'Liechtenstein',
|
|
55
|
+
LT: 'Lithuania',
|
|
56
|
+
LU: 'Luxembourg',
|
|
57
|
+
LV: 'Latvia',
|
|
58
|
+
MC: 'Monaco',
|
|
59
|
+
MD: 'Moldova',
|
|
60
|
+
ME: 'Montenegro',
|
|
61
|
+
MG: 'Madagascar',
|
|
62
|
+
MK: 'Macedonia',
|
|
63
|
+
ML: 'Mali',
|
|
64
|
+
MR: 'Mauritania',
|
|
65
|
+
MT: 'Malta',
|
|
66
|
+
MU: 'Mauritius',
|
|
67
|
+
MZ: 'Mozambique',
|
|
68
|
+
NL: 'Netherlands',
|
|
69
|
+
NO: 'Norway',
|
|
70
|
+
PK: 'Pakistan',
|
|
71
|
+
PL: 'Poland',
|
|
72
|
+
PS: 'Palestinian',
|
|
73
|
+
PT: 'Portugal',
|
|
74
|
+
QA: 'Qatar',
|
|
75
|
+
RO: 'Romania',
|
|
76
|
+
RS: 'Serbia',
|
|
77
|
+
SA: 'Saudi Arabia',
|
|
78
|
+
SE: 'Sweden',
|
|
79
|
+
SI: 'Slovenia',
|
|
80
|
+
SK: 'Slovakia',
|
|
81
|
+
SM: 'San Marino',
|
|
82
|
+
SN: 'Senegal',
|
|
83
|
+
TN: 'Tunisia',
|
|
84
|
+
TR: 'Turkey',
|
|
85
|
+
VG: 'Virgin Islands, British'
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
$.fn.bootstrapValidator.validators.iban = {
|
|
90
|
+
html5Attributes: {
|
|
91
|
+
message: 'message',
|
|
92
|
+
country: 'country'
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
// http://www.swift.com/dsp/resources/documents/IBAN_Registry.pdf
|
|
96
|
+
// http://en.wikipedia.org/wiki/International_Bank_Account_Number#IBAN_formats_by_country
|
|
97
|
+
REGEX: {
|
|
98
|
+
'AD': 'AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}', // Andorra
|
|
99
|
+
'AE': 'AE[0-9]{2}[0-9]{3}[0-9]{16}', // United Arab Emirates
|
|
100
|
+
'AL': 'AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}', // Albania
|
|
101
|
+
'AO': 'AO[0-9]{2}[0-9]{21}', // Angola
|
|
102
|
+
'AT': 'AT[0-9]{2}[0-9]{5}[0-9]{11}', // Austria
|
|
103
|
+
'AZ': 'AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}', // Azerbaijan
|
|
104
|
+
'BA': 'BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}', // Bosnia and Herzegovina
|
|
105
|
+
'BE': 'BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}', // Belgium
|
|
106
|
+
'BF': 'BF[0-9]{2}[0-9]{23}', // Burkina Faso
|
|
107
|
+
'BG': 'BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}', // Bulgaria
|
|
108
|
+
'BH': 'BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}', // Bahrain
|
|
109
|
+
'BI': 'BI[0-9]{2}[0-9]{12}', // Burundi
|
|
110
|
+
'BJ': 'BJ[0-9]{2}[A-Z]{1}[0-9]{23}', // Benin
|
|
111
|
+
'BR': 'BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]', // Brazil
|
|
112
|
+
'CH': 'CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}', // Switzerland
|
|
113
|
+
'CI': 'CI[0-9]{2}[A-Z]{1}[0-9]{23}', // Ivory Coast
|
|
114
|
+
'CM': 'CM[0-9]{2}[0-9]{23}', // Cameroon
|
|
115
|
+
'CR': 'CR[0-9]{2}[0-9]{3}[0-9]{14}', // Costa Rica
|
|
116
|
+
'CV': 'CV[0-9]{2}[0-9]{21}', // Cape Verde
|
|
117
|
+
'CY': 'CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}', // Cyprus
|
|
118
|
+
'CZ': 'CZ[0-9]{2}[0-9]{20}', // Czech Republic
|
|
119
|
+
'DE': 'DE[0-9]{2}[0-9]{8}[0-9]{10}', // Germany
|
|
120
|
+
'DK': 'DK[0-9]{2}[0-9]{14}', // Denmark
|
|
121
|
+
'DO': 'DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}', // Dominican Republic
|
|
122
|
+
'DZ': 'DZ[0-9]{2}[0-9]{20}', // Algeria
|
|
123
|
+
'EE': 'EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}', // Estonia
|
|
124
|
+
'ES': 'ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}', // Spain
|
|
125
|
+
'FI': 'FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}', // Finland
|
|
126
|
+
'FO': 'FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}', // Faroe Islands
|
|
127
|
+
'FR': 'FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}', // France
|
|
128
|
+
'GB': 'GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}', // United Kingdom
|
|
129
|
+
'GE': 'GE[0-9]{2}[A-Z]{2}[0-9]{16}', // Georgia
|
|
130
|
+
'GI': 'GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}', // Gibraltar
|
|
131
|
+
'GL': 'GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}', // Greenland
|
|
132
|
+
'GR': 'GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}', // Greece
|
|
133
|
+
'GT': 'GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}', // Guatemala
|
|
134
|
+
'HR': 'HR[0-9]{2}[0-9]{7}[0-9]{10}', // Croatia
|
|
135
|
+
'HU': 'HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}', // Hungary
|
|
136
|
+
'IE': 'IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}', // Ireland
|
|
137
|
+
'IL': 'IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}', // Israel
|
|
138
|
+
'IR': 'IR[0-9]{2}[0-9]{22}', // Iran
|
|
139
|
+
'IS': 'IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}', // Iceland
|
|
140
|
+
'IT': 'IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}', // Italy
|
|
141
|
+
'JO': 'JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}', // Jordan
|
|
142
|
+
'KW': 'KW[0-9]{2}[A-Z]{4}[0-9]{22}', // Kuwait
|
|
143
|
+
'KZ': 'KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}', // Kazakhstan
|
|
144
|
+
'LB': 'LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}', // Lebanon
|
|
145
|
+
'LI': 'LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}', // Liechtenstein
|
|
146
|
+
'LT': 'LT[0-9]{2}[0-9]{5}[0-9]{11}', // Lithuania
|
|
147
|
+
'LU': 'LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}', // Luxembourg
|
|
148
|
+
'LV': 'LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}', // Latvia
|
|
149
|
+
'MC': 'MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}', // Monaco
|
|
150
|
+
'MD': 'MD[0-9]{2}[A-Z0-9]{20}', // Moldova
|
|
151
|
+
'ME': 'ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}', // Montenegro
|
|
152
|
+
'MG': 'MG[0-9]{2}[0-9]{23}', // Madagascar
|
|
153
|
+
'MK': 'MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}', // Macedonia
|
|
154
|
+
'ML': 'ML[0-9]{2}[A-Z]{1}[0-9]{23}', // Mali
|
|
155
|
+
'MR': 'MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}', // Mauritania
|
|
156
|
+
'MT': 'MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}', // Malta
|
|
157
|
+
'MU': 'MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}',// Mauritius
|
|
158
|
+
'MZ': 'MZ[0-9]{2}[0-9]{21}', // Mozambique
|
|
159
|
+
'NL': 'NL[0-9]{2}[A-Z]{4}[0-9]{10}', // Netherlands
|
|
160
|
+
'NO': 'NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}', // Norway
|
|
161
|
+
'PK': 'PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}', // Pakistan
|
|
162
|
+
'PL': 'PL[0-9]{2}[0-9]{8}[0-9]{16}', // Poland
|
|
163
|
+
'PS': 'PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}', // Palestinian
|
|
164
|
+
'PT': 'PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}', // Portugal
|
|
165
|
+
'QA': 'QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}', // Qatar
|
|
166
|
+
'RO': 'RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}', // Romania
|
|
167
|
+
'RS': 'RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}', // Serbia
|
|
168
|
+
'SA': 'SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}', // Saudi Arabia
|
|
169
|
+
'SE': 'SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}', // Sweden
|
|
170
|
+
'SI': 'SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}', // Slovenia
|
|
171
|
+
'SK': 'SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}', // Slovakia
|
|
172
|
+
'SM': 'SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}', // San Marino
|
|
173
|
+
'SN': 'SN[0-9]{2}[A-Z]{1}[0-9]{23}', // Senegal
|
|
174
|
+
'TN': 'TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}', // Tunisia
|
|
175
|
+
'TR': 'TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}', // Turkey
|
|
176
|
+
'VG': 'VG[0-9]{2}[A-Z]{4}[0-9]{16}' // Virgin Islands, British
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Validate an International Bank Account Number (IBAN)
|
|
181
|
+
* To test it, take the sample IBAN from
|
|
182
|
+
* http://www.nordea.com/Our+services/International+products+and+services/Cash+Management/IBAN+countries/908462.html
|
|
183
|
+
*
|
|
184
|
+
* @param {BootstrapValidator} validator The validator plugin instance
|
|
185
|
+
* @param {jQuery} $field Field element
|
|
186
|
+
* @param {Object} options Can consist of the following keys:
|
|
187
|
+
* - message: The invalid message
|
|
188
|
+
* - country: The ISO 3166-1 country code. It can be
|
|
189
|
+
* - A country code
|
|
190
|
+
* - Name of field which its value defines the country code
|
|
191
|
+
* - Name of callback function that returns the country code
|
|
192
|
+
* - A callback function that returns the country code
|
|
193
|
+
* @returns {Boolean|Object}
|
|
194
|
+
*/
|
|
195
|
+
validate: function(validator, $field, options) {
|
|
196
|
+
var value = $field.val();
|
|
197
|
+
if (value === '') {
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
value = value.replace(/[^a-zA-Z0-9]/g, '').toUpperCase();
|
|
202
|
+
var country = options.country;
|
|
203
|
+
if (!country) {
|
|
204
|
+
country = value.substr(0, 2);
|
|
205
|
+
} else if (typeof country !== 'string' || !this.REGEX[country]) {
|
|
206
|
+
// Determine the country code
|
|
207
|
+
country = validator.getDynamicOption($field, country);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
if (!this.REGEX[country]) {
|
|
211
|
+
return {
|
|
212
|
+
valid: false,
|
|
213
|
+
message: $.fn.bootstrapValidator.helpers.format($.fn.bootstrapValidator.i18n.iban.countryNotSupported, country)
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (!(new RegExp('^' + this.REGEX[country] + '$')).test(value)) {
|
|
218
|
+
return {
|
|
219
|
+
valid: false,
|
|
220
|
+
message: $.fn.bootstrapValidator.helpers.format(options.message || $.fn.bootstrapValidator.i18n.iban.country, $.fn.bootstrapValidator.i18n.iban.countries[country])
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
value = value.substr(4) + value.substr(0, 4);
|
|
225
|
+
value = $.map(value.split(''), function(n) {
|
|
226
|
+
var code = n.charCodeAt(0);
|
|
227
|
+
return (code >= 'A'.charCodeAt(0) && code <= 'Z'.charCodeAt(0))
|
|
228
|
+
// Replace A, B, C, ..., Z with 10, 11, ..., 35
|
|
229
|
+
? (code - 'A'.charCodeAt(0) + 10)
|
|
230
|
+
: n;
|
|
231
|
+
});
|
|
232
|
+
value = value.join('');
|
|
233
|
+
|
|
234
|
+
var temp = parseInt(value.substr(0, 1), 10),
|
|
235
|
+
length = value.length;
|
|
236
|
+
for (var i = 1; i < length; ++i) {
|
|
237
|
+
temp = (temp * 10 + parseInt(value.substr(i, 1), 10)) % 97;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return {
|
|
241
|
+
valid: (temp === 1),
|
|
242
|
+
message: $.fn.bootstrapValidator.helpers.format(options.message || $.fn.bootstrapValidator.i18n.iban.country, $.fn.bootstrapValidator.i18n.iban.countries[country])
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
}(window.jQuery));
|