iban.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. describe('iban', function() {
  2. beforeEach(function() {
  3. var html = [
  4. '<div class="container">',
  5. '<form class="form-horizontal" id="ibanForm">',
  6. '<div class="form-group">',
  7. '<input type="text" name="iban" data-bv-iban />',
  8. '</div>',
  9. '</form>',
  10. '</div>'
  11. ].join('\n');
  12. $(html).appendTo('body');
  13. $('#ibanForm').bootstrapValidator();
  14. this.bv = $('#ibanForm').data('bootstrapValidator');
  15. this.$iban = this.bv.getFieldElements('iban');
  16. });
  17. afterEach(function() {
  18. $('#ibanForm').bootstrapValidator('destroy').parent().remove();
  19. });
  20. it('not supported country', function() {
  21. this.$iban.val('US123456789');
  22. this.bv.validate();
  23. expect(this.bv.isValidField('iban')).toEqual(false);
  24. });
  25. it('Albania', function() {
  26. this.$iban.val('AL47212110090000000235698741');
  27. this.bv.validate();
  28. expect(this.bv.isValidField('iban')).toBeTruthy();
  29. });
  30. it('Algeria', function() {
  31. this.$iban.val('DZ4000400174401001050486');
  32. this.bv.validate();
  33. expect(this.bv.isValidField('iban')).toBeTruthy();
  34. });
  35. it('Andorra', function() {
  36. this.$iban.val('AD1200012030200359100100');
  37. this.bv.validate();
  38. expect(this.bv.isValidField('iban')).toBeTruthy();
  39. });
  40. it('Angola', function() {
  41. this.$iban.val('AO06000600000100037131174');
  42. this.bv.validate();
  43. expect(this.bv.isValidField('iban')).toBeTruthy();
  44. });
  45. it('Austria', function() {
  46. this.$iban.val('AT611904300234573201');
  47. this.bv.validate();
  48. expect(this.bv.isValidField('iban')).toBeTruthy();
  49. });
  50. it('Azerbaijan', function() {
  51. this.$iban.val('AZ21NABZ00000000137010001944');
  52. this.bv.validate();
  53. expect(this.bv.isValidField('iban')).toBeTruthy();
  54. });
  55. it('Bahrain', function() {
  56. this.$iban.val('BH29BMAG1299123456BH00');
  57. this.bv.validate();
  58. expect(this.bv.isValidField('iban')).toBeTruthy();
  59. });
  60. it('Belgium', function() {
  61. this.$iban.val('BE68539007547034');
  62. this.bv.validate();
  63. expect(this.bv.isValidField('iban')).toBeTruthy();
  64. });
  65. it('Benin', function() {
  66. this.$iban.val('BJ11B00610100400271101192591');
  67. this.bv.validate();
  68. expect(this.bv.isValidField('iban')).toBeTruthy();
  69. });
  70. it('Brazil', function() {
  71. this.$iban.val('BR9700360305000010009795493P1');
  72. this.bv.validate();
  73. expect(this.bv.isValidField('iban')).toBeTruthy();
  74. });
  75. it('Bulgaria', function() {
  76. this.$iban.val('BG80BNBG96611020345678');
  77. this.bv.validate();
  78. expect(this.bv.isValidField('iban')).toBeTruthy();
  79. });
  80. it('Burkina Faso', function() {
  81. this.$iban.val('BF1030134020015400945000643');
  82. this.bv.validate();
  83. expect(this.bv.isValidField('iban')).toBeTruthy();
  84. });
  85. it('Burundi', function() {
  86. this.$iban.val('BI43201011067444');
  87. this.bv.validate();
  88. expect(this.bv.isValidField('iban')).toBeTruthy();
  89. });
  90. it('Cameroon', function() {
  91. this.$iban.val('CM2110003001000500000605306');
  92. this.bv.validate();
  93. expect(this.bv.isValidField('iban')).toBeTruthy();
  94. });
  95. it('Cape Verde', function() {
  96. this.$iban.val('CV64000300004547069110176');
  97. this.bv.validate();
  98. expect(this.bv.isValidField('iban')).toBeTruthy();
  99. });
  100. it('Costa Rica', function() {
  101. this.$iban.val('CR0515202001026284066');
  102. this.bv.validate();
  103. expect(this.bv.isValidField('iban')).toBeTruthy();
  104. });
  105. it('Croatia', function() {
  106. this.$iban.val('HR1210010051863000160');
  107. this.bv.validate();
  108. expect(this.bv.isValidField('iban')).toBeTruthy();
  109. });
  110. it('Cyprus', function() {
  111. this.$iban.val('CY17002001280000001200527600');
  112. this.bv.validate();
  113. expect(this.bv.isValidField('iban')).toBeTruthy();
  114. });
  115. it('Czech Republic', function() {
  116. this.$iban.val('CZ6508000000192000145399');
  117. this.bv.validate();
  118. expect(this.bv.isValidField('iban')).toBeTruthy();
  119. });
  120. it('Denmark', function() {
  121. this.$iban.val('DK5000400440116243');
  122. this.bv.validate();
  123. expect(this.bv.isValidField('iban')).toBeTruthy();
  124. });
  125. it('Dominican Republic', function() {
  126. this.$iban.val('DO28BAGR00000001212453611324');
  127. this.bv.validate();
  128. expect(this.bv.isValidField('iban')).toBeTruthy();
  129. });
  130. it('Estonia', function() {
  131. this.$iban.val('EE382200221020145685');
  132. this.bv.validate();
  133. expect(this.bv.isValidField('iban')).toBeTruthy();
  134. });
  135. it('Faroe Islands', function() {
  136. this.$iban.val('FO1464600009692713');
  137. this.bv.validate();
  138. expect(this.bv.isValidField('iban')).toBeTruthy();
  139. });
  140. it('Finland', function() {
  141. this.$iban.val('FI2112345600000785');
  142. this.bv.validate();
  143. expect(this.bv.isValidField('iban')).toBeTruthy();
  144. });
  145. it('France', function() {
  146. this.$iban.val('FR1420041010050500013M02606');
  147. this.bv.validate();
  148. expect(this.bv.isValidField('iban')).toBeTruthy();
  149. });
  150. it('Guatemala', function() {
  151. this.$iban.val('GT82TRAJ01020000001210029690');
  152. this.bv.validate();
  153. expect(this.bv.isValidField('iban')).toBeTruthy();
  154. });
  155. it('Georgia', function() {
  156. this.$iban.val('GE29NB0000000101904917');
  157. this.bv.validate();
  158. expect(this.bv.isValidField('iban')).toBeTruthy();
  159. });
  160. it('Germany', function() {
  161. this.$iban.val('DE89370400440532013000');
  162. this.bv.validate();
  163. expect(this.bv.isValidField('iban')).toBeTruthy();
  164. });
  165. it('Gibraltar', function() {
  166. this.$iban.val('GI75NWBK000000007099453');
  167. this.bv.validate();
  168. expect(this.bv.isValidField('iban')).toBeTruthy();
  169. });
  170. it('Greece', function() {
  171. this.$iban.val('GR1601101250000000012300695');
  172. this.bv.validate();
  173. expect(this.bv.isValidField('iban')).toBeTruthy();
  174. });
  175. it('Greenland', function() {
  176. this.$iban.val('GL8964710001000206');
  177. this.bv.validate();
  178. expect(this.bv.isValidField('iban')).toBeTruthy();
  179. });
  180. it('Hungary', function() {
  181. this.$iban.val('HU42117730161111101800000000');
  182. this.bv.validate();
  183. expect(this.bv.isValidField('iban')).toBeTruthy();
  184. });
  185. it('Iceland', function() {
  186. this.$iban.val('IS140159260076545510730339');
  187. this.bv.validate();
  188. expect(this.bv.isValidField('iban')).toBeTruthy();
  189. });
  190. it('Iran', function() {
  191. this.$iban.val('IR580540105180021273113007');
  192. this.bv.validate();
  193. expect(this.bv.isValidField('iban')).toBeTruthy();
  194. });
  195. it('Ireland', function() {
  196. this.$iban.val('IE29AIBK93115212345678');
  197. this.bv.validate();
  198. expect(this.bv.isValidField('iban')).toBeTruthy();
  199. });
  200. it('Israel', function() {
  201. this.$iban.val('IL620108000000099999999');
  202. this.bv.validate();
  203. expect(this.bv.isValidField('iban')).toBeTruthy();
  204. });
  205. it('Italy', function() {
  206. this.$iban.val('IT60X0542811101000000123456');
  207. this.bv.validate();
  208. expect(this.bv.isValidField('iban')).toBeTruthy();
  209. });
  210. it('Ivory Coast', function() {
  211. this.$iban.val('CI05A00060174100178530011852');
  212. this.bv.validate();
  213. expect(this.bv.isValidField('iban')).toBeTruthy();
  214. });
  215. it('Jordan', function() {
  216. this.$iban.val('JO94CBJO0010000000000131000302');
  217. this.bv.validate();
  218. expect(this.bv.isValidField('iban')).toBeTruthy();
  219. });
  220. it('Kazakhstan', function() {
  221. this.$iban.val('KZ176010251000042993');
  222. this.bv.validate();
  223. expect(this.bv.isValidField('iban')).toBeTruthy();
  224. });
  225. it('Kuwait', function() {
  226. this.$iban.val('KW74NBOK0000000000001000372151');
  227. this.bv.validate();
  228. expect(this.bv.isValidField('iban')).toBeTruthy();
  229. });
  230. it('Latvia', function() {
  231. this.$iban.val('LV80BANK0000435195001');
  232. this.bv.validate();
  233. expect(this.bv.isValidField('iban')).toBeTruthy();
  234. });
  235. it('Lebanon', function() {
  236. this.$iban.val('LB30099900000001001925579115');
  237. this.bv.validate();
  238. expect(this.bv.isValidField('iban')).toBeTruthy();
  239. });
  240. it('Liechtenstein', function() {
  241. this.$iban.val('LI21088100002324013AA');
  242. this.bv.validate();
  243. expect(this.bv.isValidField('iban')).toBeTruthy();
  244. });
  245. it('Lithuania', function() {
  246. this.$iban.val('LT121000011101001000');
  247. this.bv.validate();
  248. expect(this.bv.isValidField('iban')).toBeTruthy();
  249. });
  250. it('Luxembourg', function() {
  251. this.$iban.val('LU280019400644750000');
  252. this.bv.validate();
  253. expect(this.bv.isValidField('iban')).toBeTruthy();
  254. });
  255. it('Macedonia', function() {
  256. this.$iban.val('MK07300000000042425');
  257. this.bv.validate();
  258. expect(this.bv.isValidField('iban')).toBeTruthy();
  259. });
  260. it('Madagascar', function() {
  261. this.$iban.val('MG4600005030010101914016056');
  262. this.bv.validate();
  263. expect(this.bv.isValidField('iban')).toBeTruthy();
  264. });
  265. it('Malta', function() {
  266. this.$iban.val('MT84MALT011000012345MTLCAST001S');
  267. this.bv.validate();
  268. expect(this.bv.isValidField('iban')).toBeTruthy();
  269. });
  270. it('Mauritania', function() {
  271. this.$iban.val('MR1300012000010000002037372');
  272. this.bv.validate();
  273. expect(this.bv.isValidField('iban')).toBeTruthy();
  274. });
  275. it('Mauritius', function() {
  276. this.$iban.val('MU17BOMM0101101030300200000MUR');
  277. this.bv.validate();
  278. expect(this.bv.isValidField('iban')).toBeTruthy();
  279. });
  280. it('Mali', function() {
  281. this.$iban.val('ML03D00890170001002120000447');
  282. this.bv.validate();
  283. expect(this.bv.isValidField('iban')).toBeTruthy();
  284. });
  285. it('Moldova', function() {
  286. this.$iban.val('MD24AG000225100013104168');
  287. this.bv.validate();
  288. expect(this.bv.isValidField('iban')).toBeTruthy();
  289. });
  290. it('Monaco', function() {
  291. this.$iban.val('MC5813488000010051108001292');
  292. this.bv.validate();
  293. expect(this.bv.isValidField('iban')).toBeTruthy();
  294. });
  295. it('Montenegro', function() {
  296. this.$iban.val('ME25505000012345678951');
  297. this.bv.validate();
  298. expect(this.bv.isValidField('iban')).toBeTruthy();
  299. });
  300. it('Mozambique', function() {
  301. this.$iban.val('MZ59000100000011834194157');
  302. this.bv.validate();
  303. expect(this.bv.isValidField('iban')).toBeTruthy();
  304. });
  305. it('Netherlands', function() {
  306. this.$iban.val('NL91ABNA0417164300');
  307. this.bv.validate();
  308. expect(this.bv.isValidField('iban')).toBeTruthy();
  309. });
  310. it('Norway', function() {
  311. this.$iban.val('NO9386011117947');
  312. this.bv.validate();
  313. expect(this.bv.isValidField('iban')).toBeTruthy();
  314. });
  315. it('Pakistan', function() {
  316. this.$iban.val('PK24SCBL0000001171495101');
  317. this.bv.validate();
  318. expect(this.bv.isValidField('iban')).toBeTruthy();
  319. });
  320. it('Palestine', function() {
  321. this.$iban.val('PS92PALS000000000400123456702');
  322. this.bv.validate();
  323. expect(this.bv.isValidField('iban')).toBeTruthy();
  324. });
  325. it('Poland', function() {
  326. this.$iban.val('PL27114020040000300201355387');
  327. this.bv.validate();
  328. expect(this.bv.isValidField('iban')).toBeTruthy();
  329. });
  330. it('Portugal', function() {
  331. this.$iban.val('PT50000201231234567890154');
  332. this.bv.validate();
  333. expect(this.bv.isValidField('iban')).toBeTruthy();
  334. });
  335. it('Qatar', function() {
  336. this.$iban.val('QA58DOHB00001234567890ABCDEFG');
  337. this.bv.validate();
  338. expect(this.bv.isValidField('iban')).toBeTruthy();
  339. });
  340. it('Romania', function() {
  341. this.$iban.val('RO49AAAA1B31007593840000');
  342. this.bv.validate();
  343. expect(this.bv.isValidField('iban')).toBeTruthy();
  344. });
  345. it('San Marino', function() {
  346. this.$iban.val('SM86U0322509800000000270100');
  347. this.bv.validate();
  348. expect(this.bv.isValidField('iban')).toBeTruthy();
  349. });
  350. it('Saudi Arabia', function() {
  351. this.$iban.val('SA0380000000608010167519');
  352. this.bv.validate();
  353. expect(this.bv.isValidField('iban')).toBeTruthy();
  354. });
  355. it('Senegal', function() {
  356. this.$iban.val('SN12K00100152000025690007542');
  357. this.bv.validate();
  358. expect(this.bv.isValidField('iban')).toBeTruthy();
  359. });
  360. it('Serbia', function() {
  361. this.$iban.val('RS35260005601001611379');
  362. this.bv.validate();
  363. expect(this.bv.isValidField('iban')).toBeTruthy();
  364. });
  365. it('Slovakia', function() {
  366. this.$iban.val('SK3112000000198742637541');
  367. this.bv.validate();
  368. expect(this.bv.isValidField('iban')).toBeTruthy();
  369. });
  370. it('Slovenia', function() {
  371. this.$iban.val('SI56191000000123438');
  372. this.bv.validate();
  373. expect(this.bv.isValidField('iban')).toBeTruthy();
  374. });
  375. it('Spain', function() {
  376. this.$iban.val('ES9121000418450200051332');
  377. this.bv.validate();
  378. expect(this.bv.isValidField('iban')).toBeTruthy();
  379. });
  380. it('Sweden', function() {
  381. this.$iban.val('SE3550000000054910000003');
  382. this.bv.validate();
  383. expect(this.bv.isValidField('iban')).toBeTruthy();
  384. });
  385. it('Switzerland', function() {
  386. this.$iban.val('CH9300762011623852957');
  387. this.bv.validate();
  388. expect(this.bv.isValidField('iban')).toBeTruthy();
  389. });
  390. it('Tunisia', function() {
  391. this.$iban.val('TN5914207207100707129648');
  392. this.bv.validate();
  393. expect(this.bv.isValidField('iban')).toBeTruthy();
  394. });
  395. it('Turkey', function() {
  396. this.$iban.val('TR330006100519786457841326');
  397. this.bv.validate();
  398. expect(this.bv.isValidField('iban')).toBeTruthy();
  399. });
  400. it('United Arab Emirates', function() {
  401. this.$iban.val('AE260211000000230064016');
  402. this.bv.validate();
  403. expect(this.bv.isValidField('iban')).toBeTruthy();
  404. });
  405. it('United Kingdom', function() {
  406. this.$iban.val('GB29NWBK60161331926819');
  407. this.bv.validate();
  408. expect(this.bv.isValidField('iban')).toBeTruthy();
  409. });
  410. it('Virgin Islands, British', function() {
  411. this.$iban.val('VG96VPVG0000012345678901');
  412. this.bv.validate();
  413. expect(this.bv.isValidField('iban')).toBeTruthy();
  414. });
  415. it('invalid checksum', function() {
  416. this.$iban.val('TR330006100519786457841325');
  417. this.bv.validate();
  418. expect(this.bv.isValidField('iban')).toEqual(false);
  419. });
  420. });