├── bank-iran
├── index.html
├── ansar.png
├── day.png
├── exe.png
├── meli.png
├── refah.png
├── saman.png
├── sepah.png
├── shahr.png
├── sina.png
├── ayandeh.png
├── markazi.png
├── maskan.png
├── mellat.png
├── no-img.png
├── parsian.png
├── resalat.png
├── saderat.png
├── sarmaye.png
├── tejarat.png
├── tosehe.png
├── eghtesad.png
├── ghavamin.png
├── iranzamin.png
├── karafarin.png
├── keshavarsi.png
├── pasargad.png
├── postbank.png
├── sanatmadan.png
├── gardeshgari.png
├── mehreqtesad.png
└── khavarmiyaneh.png
├── package.json
├── dist
└── shaba.min.js
├── src
└── shaba.js
├── README.md
└── index.html
/bank-iran/index.html:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/bank-iran/ansar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/ansar.png
--------------------------------------------------------------------------------
/bank-iran/day.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/day.png
--------------------------------------------------------------------------------
/bank-iran/exe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/exe.png
--------------------------------------------------------------------------------
/bank-iran/meli.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/meli.png
--------------------------------------------------------------------------------
/bank-iran/refah.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/refah.png
--------------------------------------------------------------------------------
/bank-iran/saman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/saman.png
--------------------------------------------------------------------------------
/bank-iran/sepah.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/sepah.png
--------------------------------------------------------------------------------
/bank-iran/shahr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/shahr.png
--------------------------------------------------------------------------------
/bank-iran/sina.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/sina.png
--------------------------------------------------------------------------------
/bank-iran/ayandeh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/ayandeh.png
--------------------------------------------------------------------------------
/bank-iran/markazi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/markazi.png
--------------------------------------------------------------------------------
/bank-iran/maskan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/maskan.png
--------------------------------------------------------------------------------
/bank-iran/mellat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/mellat.png
--------------------------------------------------------------------------------
/bank-iran/no-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/no-img.png
--------------------------------------------------------------------------------
/bank-iran/parsian.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/parsian.png
--------------------------------------------------------------------------------
/bank-iran/resalat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/resalat.png
--------------------------------------------------------------------------------
/bank-iran/saderat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/saderat.png
--------------------------------------------------------------------------------
/bank-iran/sarmaye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/sarmaye.png
--------------------------------------------------------------------------------
/bank-iran/tejarat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/tejarat.png
--------------------------------------------------------------------------------
/bank-iran/tosehe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/tosehe.png
--------------------------------------------------------------------------------
/bank-iran/eghtesad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/eghtesad.png
--------------------------------------------------------------------------------
/bank-iran/ghavamin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/ghavamin.png
--------------------------------------------------------------------------------
/bank-iran/iranzamin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/iranzamin.png
--------------------------------------------------------------------------------
/bank-iran/karafarin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/karafarin.png
--------------------------------------------------------------------------------
/bank-iran/keshavarsi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/keshavarsi.png
--------------------------------------------------------------------------------
/bank-iran/pasargad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/pasargad.png
--------------------------------------------------------------------------------
/bank-iran/postbank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/postbank.png
--------------------------------------------------------------------------------
/bank-iran/sanatmadan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/sanatmadan.png
--------------------------------------------------------------------------------
/bank-iran/gardeshgari.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/gardeshgari.png
--------------------------------------------------------------------------------
/bank-iran/mehreqtesad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/mehreqtesad.png
--------------------------------------------------------------------------------
/bank-iran/khavarmiyaneh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smohamadabedy/shaba/HEAD/bank-iran/khavarmiyaneh.png
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "shaba",
3 | "version": "1.0.1",
4 | "description": "JavaScript utilities to validate Iranian bank cards and IBAN (Sheba) codes, convert Persian numerals, and detect bank info.",
5 | "main": "dist/shaba.min.js",
6 | "unpkg": "dist/shaba.min.js",
7 | "jsdelivr": "dist/shaba.min.js",
8 | "scripts": {
9 | "build": "uglifyjs src/shaba.js -o dist/shaba.min.js --compress --mangle"
10 | },
11 | "keywords": [
12 | "iran",
13 | "bank",
14 | "iban",
15 | "shaba",
16 | "card",
17 | "card-validator",
18 | "persian",
19 | "iranian-bank",
20 | "bank-utils",
21 | "javascript",
22 | "iban-validator"
23 | ],
24 | "author": "SMH ABEDY",
25 | "license": "MIT",
26 | "repository": {
27 | "type": "git",
28 | "url": "git+https://github.com/smohamadabedy/shaba.git"
29 | },
30 | "bugs": {
31 | "url": "https://github.com/smohamadabedy/shaba/issues"
32 | },
33 | "homepage": "https://github.com/smohamadabedy/shaba#readme"
34 | }
35 |
--------------------------------------------------------------------------------
/dist/shaba.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * shaba.js
3 | * Utility functions for validating Iranian card numbers and IBAN (Sheba) codes,
4 | * and identifying banks based on card prefix or Shaba bank code.
5 | * By SMH Abedy
6 | * Note: 'shaba' is an incorrect spelling of 'sheba'.
7 | */
8 |
9 | (function(global){const shaba={convertPersianToEnglishDigits(str){const persian=["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"];const arabic=["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"];const english=["0","1","2","3","4","5","6","7","8","9"];for(let i=0;i<10;i++){str=str.replace(new RegExp(persian[i],'g'),english[i]).replace(new RegExp(arabic[i],'g'),english[i])}
10 | return str},iso13616Prepare(iban){iban="IR"+iban
11 | iban=iban.toUpperCase();iban=iban.slice(4)+iban.slice(0,4);return iban.split('').map(char=>{const code=char.charCodeAt(0);return code>=65&&code<=90?(code-55).toString():char}).join('')},iso7064Mod97_10(preparedIban){let remainder=preparedIban;while(remainder.length>2){const block=remainder.slice(0,9);remainder=parseInt(block,10)%97+remainder.slice(block.length)}
12 | return parseInt(remainder,10)%97},validateCard(cardNumber){cardNumber=shaba.convertPersianToEnglishDigits(cardNumber);if(!/^\d{16}$/.test(cardNumber))return!1;const digits=cardNumber.split('').map(Number);const checkSum=digits.reduce((sum,digit,index)=>{let num=digit*(index%2===0?2:1);return sum+(num>9?num-9:num)},0);return checkSum%10===0},getBankFromCard(prefix){const map={'636795':["markazi","636795","بانک مرکزی"],'603799':["meli","603799","بانک ملی"],'589210':["sepah","589210","بانک سپه"],'627961':["sanatmadan","627961","بانک صنعت و معدن"],'603770':["keshavarsi","603770","بانک کشاورزی"],'628023':["maskan","628023","بانک مسکن"],'627760':["postbank","627760","پست بانک"],'502908':["tosehe","502908","بانک توسعه"],'627412':["eghtesad","627412","بانک اقتصاد"],'622106':["parsian","622106","بانک پارسیان"],'502229':["pasargad","502229","بانک پاسارگاد"],'627488':["karafarin","627488","بانک کارآفرین"],'621986':["saman","621986","بانک سامان"],'639346':["sina","639346","بانک سینا"],'639607':["sarmaye","639607","بانک سرمایه"],'502806':["shahr","502806","بانک شهر"],'504706':["shahr","504706","بانک شهر"],'502938':["day","502938","بانک دی"],'603769':["saderat","603769","بانک صادرات"],'610433':["mellat","610433","بانک ملت"],'627353':["tejarat","627353","بانک تجارت"],'585983':["tejarat","585983","بانک تجارت"],'589463':["refah","589463","بانک رفاه"],'627381':["ansar","627381","بانک انصار"],'639370':["sepah","639370"," بانک مهراقتصاد"],'606373':["mehreqtesad","606373","بانک قرض الحسنه مهر"],'639599':["ghavamin","639599","بانک قوامین"],'504172':["resalat","504172","بانک رسالت"],'636214':["ayandeh","636214","بانک آینده"],'505785':["iranzamin","505785","بانک ایران زمین"],};return map[prefix]||["no-img",null,"نامشخص"]},getBankFromShaba(code){const map={'010':["markazi","بانک مرکزی","010"],'011':["sanatmadan","بانک صنعت و معدن","011"],'012':["mellat","بانک ملت","012"],'013':["refah","بانک رفاه","013"],'014':["maskan","بانک مسکن","014"],'015':["sepah","بانک سپه","015"],'016':["keshavarsi","بانک کشاورزی","016"],'017':["meli","بانک ملی ایران","017"],'018':["tejarat","بانک تجارت","018"],'019':["saderat","بانک صادرات","019"],'020':["tooseesaderat","بانک توسعه صادرات","020"],'021':["postbank","پست بانک ایران","021"],'022':["toosetaavon","بانک توسعه تعاون","022"],'051':["etebaritosee","موسسه اعتباری توسعه","051"],'053':["karafarin","بانک کارآفرین","053"],'054':["parsian","بانک پارسیان","054"],'055':["eghtesad","بانک اقتصاد نوین","055"],'056':["saman","بانک سامان","056"],'057':["pasargad","بانک پاسارگاد","057"],'058':["sarmaye","بانک سرمایه","058"],'059':["sina","بانک سینا","059"],'060':["mehreqtesad","بانک قرض الحسنه مهر","060"],'061':["shahr","بانک شهر","061"],'062':["ayandeh","بانک آینده","062"],'063':["ansar","بانک انصار","063"],'064':["gardeshgari","بانک گردشگری","064"],'065':["hekmat","بانک حکمت ایرانیان","065"],'066':["day","بانک دی","066"],'069':["iranzamin","بانک ایران زمین","069"],'070':["resalat","بانک رسالت","070"]};return map[code]||["no-img","نامشخص","000"]}};if(typeof module!=='undefined'&&typeof module.exports!=='undefined'){module.exports=shaba}else{global.shaba=shaba}})(typeof window!=='undefined'?window:global)
--------------------------------------------------------------------------------
/src/shaba.js:
--------------------------------------------------------------------------------
1 | /**
2 | * shaba.js
3 | * Utility functions for validating Iranian card numbers and IBAN (Sheba) codes,
4 | * and identifying banks based on card prefix or Shaba bank code.
5 | * By SMH Abedy
6 | * Note: 'shaba' is an incorrect spelling of 'sheba'.
7 | */
8 |
9 | (function (global) {
10 | const shaba = {
11 |
12 | convertPersianToEnglishDigits(str) {
13 | const persian = ["۰", "۱", "۲", "۳", "۴", "۵", "۶", "۷", "۸", "۹"];
14 | const arabic = ["٠", "١", "٢", "٣", "٤", "٥", "٦", "٧", "٨", "٩"];
15 | const english = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"];
16 |
17 | for (let i = 0; i < 10; i++) {
18 | str = str.replace(new RegExp(persian[i], 'g'), english[i])
19 | .replace(new RegExp(arabic[i], 'g'), english[i]);
20 | }
21 | return str;
22 | },
23 |
24 | iso13616Prepare(iban) {
25 | iban = "IR" + iban
26 | iban = iban.toUpperCase();
27 | iban = iban.slice(4) + iban.slice(0, 4);
28 | return iban.split('').map(char => {
29 | const code = char.charCodeAt(0);
30 | return code >= 65 && code <= 90 ? (code - 55).toString() : char;
31 | }).join('');
32 | },
33 |
34 | iso7064Mod97_10(preparedIban) {
35 | let remainder = preparedIban;
36 | while (remainder.length > 2) {
37 | const block = remainder.slice(0, 9);
38 | remainder = parseInt(block, 10) % 97 + remainder.slice(block.length);
39 | }
40 | return parseInt(remainder, 10) % 97;
41 | },
42 |
43 | validateCard(cardNumber) {
44 | cardNumber = shaba.convertPersianToEnglishDigits(cardNumber);
45 | if (!/^\d{16}$/.test(cardNumber)) return false;
46 |
47 | const digits = cardNumber.split('').map(Number);
48 | const checkSum = digits.reduce((sum, digit, index) => {
49 | let num = digit * (index % 2 === 0 ? 2 : 1);
50 | return sum + (num > 9 ? num - 9 : num);
51 | }, 0);
52 |
53 | return checkSum % 10 === 0;
54 | },
55 |
56 | getBankFromCard(prefix) {
57 | const map = {
58 |
59 | '636795': ["markazi", "636795", "بانک مرکزی"],
60 | '603799': ["meli", "603799", "بانک ملی"],
61 | '589210': ["sepah", "589210", "بانک سپه"],
62 | '627961': ["sanatmadan", "627961", "بانک صنعت و معدن"],
63 | '603770': ["keshavarsi", "603770", "بانک کشاورزی"],
64 | '628023': ["maskan", "628023", "بانک مسکن"],
65 | '627760': ["postbank", "627760", "پست بانک"],
66 | '502908': ["tosehe", "502908", "بانک توسعه"],
67 | '627412': ["eghtesad", "627412", "بانک اقتصاد"],
68 | '622106': ["parsian", "622106", "بانک پارسیان"],
69 | '502229': ["pasargad", "502229", "بانک پاسارگاد"],
70 | '627488': ["karafarin", "627488", "بانک کارآفرین"],
71 | '621986': ["saman", "621986", "بانک سامان"],
72 | '639346': ["sina", "639346", "بانک سینا"],
73 | '639607': ["sarmaye", "639607", "بانک سرمایه"],
74 | '502806': ["shahr", "502806", "بانک شهر"],
75 | '504706': ["shahr", "504706", "بانک شهر"],
76 | '502938': ["day", "502938", "بانک دی"],
77 | '603769': ["saderat", "603769", "بانک صادرات"],
78 | '610433': ["mellat", "610433", "بانک ملت"],
79 | '627353': ["tejarat", "627353", "بانک تجارت"],
80 | '585983': ["tejarat", "585983", "بانک تجارت"],
81 | '589463': ["refah", "589463", "بانک رفاه"],
82 | '627381': ["ansar", "627381", "بانک انصار"],
83 | '639370': ["sepah", "639370", " بانک مهراقتصاد"],
84 | '606373': ["mehreqtesad", "606373", "بانک قرض الحسنه مهر"],
85 | '639599': ["ghavamin", "639599", "بانک قوامین"],
86 | '504172': ["resalat", "504172", "بانک رسالت"],
87 | '636214': ["ayandeh", "636214", "بانک آینده"],
88 | '505785': ["iranzamin", "505785", "بانک ایران زمین"],
89 | };
90 | return map[prefix] || ["no-img", null, "نامشخص"];
91 | },
92 |
93 | getBankFromShaba(code) {
94 | const map = {
95 | '010': ["markazi", "بانک مرکزی", "010"],
96 | '011': ["sanatmadan", "بانک صنعت و معدن", "011"],
97 | '012': ["mellat", "بانک ملت", "012"],
98 | '013': ["refah", "بانک رفاه", "013"],
99 | '014': ["maskan", "بانک مسکن", "014"],
100 | '015': ["sepah", "بانک سپه", "015"],
101 | '016': ["keshavarsi", "بانک کشاورزی", "016"],
102 | '017': ["meli", "بانک ملی ایران", "017"],
103 | '018': ["tejarat", "بانک تجارت", "018"],
104 | '019': ["saderat", "بانک صادرات", "019"],
105 | '020': ["tooseesaderat", "بانک توسعه صادرات", "020"],
106 | '021': ["postbank", "پست بانک ایران", "021"],
107 | '022': ["toosetaavon", "بانک توسعه تعاون", "022"],
108 | '051': ["etebaritosee", "موسسه اعتباری توسعه", "051"],
109 | '053': ["karafarin", "بانک کارآفرین", "053"],
110 | '054': ["parsian", "بانک پارسیان", "054"],
111 | '055': ["eghtesad", "بانک اقتصاد نوین", "055"],
112 | '056': ["saman", "بانک سامان", "056"],
113 | '057': ["pasargad", "بانک پاسارگاد", "057"],
114 | '058': ["sarmaye", "بانک سرمایه", "058"],
115 | '059': ["sina", "بانک سینا", "059"],
116 | '060': ["mehreqtesad", "بانک قرض الحسنه مهر", "060"],
117 | '061': ["shahr", "بانک شهر", "061"],
118 | '062': ["ayandeh", "بانک آینده", "062"],
119 | '063': ["ansar", "بانک انصار", "063"],
120 | '064': ["gardeshgari", "بانک گردشگری", "064"],
121 | '065': ["hekmat", "بانک حکمت ایرانیان", "065"],
122 | '066': ["day", "بانک دی", "066"],
123 | '069': ["iranzamin", "بانک ایران زمین", "069"],
124 | '070': ["resalat", "بانک رسالت", "070"]
125 | };
126 | return map[code] || ["no-img", "نامشخص", "000"];
127 | }
128 | };
129 |
130 | if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
131 | module.exports = shaba;
132 | } else {
133 | global.shaba = shaba;
134 | }
135 |
136 | })(typeof window !== 'undefined' ? window : global);
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # shaba
2 |
3 |
4 | اعتبار سنجی شماره شبا، شماره کارت و تشخیص بانک (به همراه تصویر)
5 |
6 | پیشنمایش: [کلیک کنید](https://smohamadabedy.github.io/shaba/) - [جایگذین](https://shaba.smohammadabedy.ir/) |
7 | [نسخه به همراه jquery در codepen](https://codepen.io/smohammadabedy/pen/WNKLOWW)
8 | ```
9 | contribution: create pull/merge request on branch name shaba{weeknumber}{month}{year}
10 | ```
11 |
12 |
CDN:
14 |<script src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/dist/shaba.min.js"></script>
15 |
16 | NPM:
17 |npm install shaba
18 |
22 | const card = shaba.convertPersianToEnglishDigits('۶۰۳۷۹۹...');
23 | const isValid = shaba.validateCard(card);
24 | const prefix = card.slice(0, 6);
25 | const bank = shaba.getBankFromCard(prefix);
26 | console.log(bank); // ["meli", "603799", "بانک ملی"]
27 |
28 | convertPersianToEnglishDigits(str) — تبدیل ارقام فارسی/عربی به انگلیسیvalidateCard(cardNumber) — بررسی اعتبار شماره کارتgetBankFromCard(prefix) — دریافت اطلاعات بانک از روی شماره کارتgetBankFromShaba(code) — دریافت بانک از کد شبا<img src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/meli.png">
39 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
102 |
103 |
104 | | ردیف | 111 |نام بانک | 112 |شناسه بانک | 113 |الگوی رجکس | 114 |
|---|---|---|---|
| 1 | بانک مرکزی جمهوری اسلامی ایران | 010 | /\d{2}(010)\d+/g |
| 2 | بانک صنعت و معدن | 011 | /\d{2}(011)\d+/g |
| 3 | بانک ملت | 012 | /\d{2}(012)\d+/g |
| 4 | بانک رفاه | 013 | /\d{2}(013)\d+/g |
| 5 | بانک مسکن | 014 | /\d{2}(014)\d+/g |
| 6 | بانک سپه | 015 | /\d{2}(015)\d+/g |
| 7 | بانک کشاورزی | 016 | /\d{2}(016)\d+/g |
| 8 | بانک ملی ایران | 017 | /\d{2}(017)\d+/g |
| 9 | بانک تجارت | 018 | /\d{2}(018)\d+/g |
| 10 | بانک صادرات ایران | 019 | /\d{2}(019)\d+/g |
| 11 | بانک توسعه صادرات | 020 | /\d{2}(020)\d+/g |
| 12 | پست بانک ایران | 021 | /\d{2}(021)\d+/g |
| 13 | بانک توسعه تعاون | 022 | /\d{2}(022)\d+/g |
| 14 | موسسه اعتباری توسعه | 051 | /\d{2}(051)\d+/g |
| 15 | بانک کارآفرین | 053 | /\d{2}(053)\d+/g |
| 16 | بانک پارسیان | 054 | /\d{2}(054)\d+/g |
| 17 | بانک اقتصاد نوین | 055 | /\d{2}(055)\d+/g |
| 18 | بانک سامان | 056 | /\d{2}(056)\d+/g |
| 19 | بانک پاسارگاد | 057 | /\d{2}(057)\d+/g |
| 20 | بانک سرمایه | 058 | /\d{2}(058)\d+/g |
| 21 | بانک سینا | 059 | /\d{2}(059)\d+/g |
| 22 | قرض الحسنه مهر | 060 | /\d{2}(060)\d+/g |
| 23 | بانک شهر | 061 | /\d{2}(061)\d+/g |
| 24 | بانک آینده | 062 | /\d{2}(062)\d+/g |
| 25 | بانک انصار | 063 | /\d{2}(063)\d+/g |
| 26 | بانک گردشگری | 064 | /\d{2}(064)\d+/g |
| 27 | بانک حکمت ایرانیان | 065 | /\d{2}(065)\d+/g |
| 28 | بانک دی | 066 | /\d{2}(066)\d+/g |
| 29 | بانک ایران زمین | 069 | /\d{2}(069)\d+/g |
| نام بانک | 155 |پیش شماره | 156 |الگوی رجکس | 157 |
|---|---|---|
| بانک ملی | ۶۰۳۷۹۹ | /(603799)\d+/g |
| بانک سامان | ۶۲۱۹۸۶ | /(621986)\d+/g |
| بانک سپه | ۵۸۹۲۱۰ | /(589210)\d+/g |
| بانک سینا | ۶۳۹۳۴۶ | /(639346)\d+/g |
| بانک توسعه صادرات | ۶۲۷۶۴۸ | /(627648)\d+/g |
| بانک سرمایه | ۶۳۹۶۰۷ | /(639607)\d+/g |
| بانک صنعت و معدن | ۶۲۷۹۶۱ | /(627961)\d+/g |
| بانک شهر | ۵۰۴۷۰۶ | /(504706)\d+/g |
| بانک آینده | ۶۳۶۲۱۴ | /(636214)\d+/g |
| بانک کشاورزی | ۶۰۳۷۷۰ | /(603770)\d+/g |
| بانک دی | ۵۰۲۹۳۸ | /(502938)\d+/g |
| بانک مسکن | ۶۲۸۰۲۳ | /(628023)\d+/g |
| بانک صادرات | ۶۰۳۷۶۹ | /(603769)\d+/g |
| پست بانک | ۶۲۷۷۶۰ | /(627760)\d+/g |
| بانک ملت | ۶۱۰۴۳۳ | /(610433)\d+/g |
| بانک توسعه تعاون | ۵۰۲۹۰۸ | /(502908)\d+/g |
| بانک تجارت | ۶۲۷۳۵۳ | /(627383)\d+/g |
| بانک اقتصاد نوین | ۶۲۷۴۱۲ | /(627412)\d+/g |
| بانک رفاه | ۵۸۹۴۶۳ | /(589463)\d+/g |
| بانک پارسیان | ۶۲۲۱۰۶ | /(622106)\d+/g |
| موسسه نور | ۵۰۷۶۷۷ | /(507677)\d+/g |
| بانک پاسارگاد | ۵۰۲۲۲۹ | /(502229)\d+/g |
| موسسه ملل | ۶۰۶۲۵۶ | /(606256)\d+/g |
| بانک قوامین | ۶۳۹۵۹۹ | /(639599)\d+/g |
| بانک قرض الحسنه مهر ایرانیان | ۶۰۶۳۷۳ | /(606373)\d+/g |
| بانک کارآفرین | ۶۲۷۴۸۸ | /(627488)\d+/g |
| بانک گردشگری | ۵۰۵۴۱۶ | /(505416)\d+/g |
توجه: تلفظ صحیح شبا به صورت (SHEBA) میباشد.
74 |
84 |
93 | 100 | اعتبار سنجی و تشخیص (به همراه تصویر) شماره کارت و شماره شبا بانک 101 |
102 |CDN:
105 |<script src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/dist/shaba.min.js"></script>
106 |
107 | NPM:
108 |npm install shaba
109 |
112 | const card = shaba.convertPersianToEnglishDigits('۶۰۳۷۹۹...');
113 | const isValid = shaba.validateCard(card);
114 | const prefix = card.slice(0, 6);
115 | const bank = shaba.getBankFromCard(prefix);
116 | console.log(bank); // ["meli", "603799", "بانک ملی"]
117 |
118 | convertPersianToEnglishDigits(str) — تبدیل ارقام فارسی/عربی به انگلیسیvalidateCard(cardNumber) — بررسی اعتبار شماره کارتgetBankFromCard(prefix) — دریافت اطلاعات بانک از روی شماره کارتgetBankFromShaba(code) — دریافت بانک از کد شبا<img src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/meli ... .png">
129 | <!-- نمایش لوگوی بانک کارت -->
132 | <img width="32px" id="cardBankLogo" src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/no-img.png">
133 |
134 | <!-- ورودی شماره کارت (سمت چپ به راست برای اعداد) -->
135 | <input type="text" id="cardInput" class="creditcart-input" style="direction:ltr" placeholder="شماره کارت را وارد کنید">
136 |
137 | <!-- نمایش لوگوی بانک شبا -->
138 | <img width="32px" id="shabaBankLogo" src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/no-img.png">
139 |
140 | <!-- ورودی شماره شبا -->
141 | <input type="text" id="shabaInput" class="shaba-input" style="direction:ltr" placeholder="کد شبا را وارد کنید">
142 |
143 | <!-- بارگذاری فایل جاوااسکریپت از CDN jsDelivr -->
144 | <script src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/dist/shaba.min.js"></script>
145 |
146 | <script type="text/javascript">
147 |
148 | // دریافت المانهای ورودی از صفحه
149 | const $card = document.getElementById('cardInput');
150 | const $shaba = document.getElementById('shabaInput');
151 |
152 | // وقتی شماره کارت تغییر کرد:
153 | $card.addEventListener('input', function () {
154 | const card = shaba.convertPersianToEnglishDigits(this.value); // تبدیل اعداد فارسی به انگلیسی
155 | const isValid = shaba.validateCard(card); // بررسی اعتبار شماره کارت
156 | const prefix = card.slice(0, 6); // گرفتن ۶ رقم اول کارت برای شناسایی بانک
157 | const bank = shaba.getBankFromCard(prefix); // گرفتن اطلاعات بانک
158 |
159 | // نمایش لوگوی بانک
160 | document.getElementById('cardBankLogo').src =
161 | "https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/" + bank[0] + ".png";
162 |
163 | // رنگ کادر را بر اساس اعتبار تنظیم کن
164 | this.style.borderColor = isValid ? 'green' : 'red';
165 | });
166 |
167 | // وقتی شبا تغییر کرد:
168 | $shaba.addEventListener('input', function () {
169 | const input = shaba.convertPersianToEnglishDigits(this.value.toUpperCase().replace(/-/g, ''));
170 | const code = input.slice(2, 5); // استخراج کد بانک از شبا
171 | const bank = shaba.getBankFromShaba(code); // گرفتن اطلاعات بانک
172 |
173 | // نمایش لوگوی بانک مربوط به شبا
174 | document.getElementById('shabaBankLogo').src =
175 | "https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/" + bank[0] + ".png";
176 |
177 | // بررسی صحت شماره شبا (Mod97)
178 | const prepared = shaba.iso13616Prepare(input);
179 | const valid = shaba.iso7064Mod97_10(prepared) === 1;
180 |
181 | // رنگ کادر را بر اساس اعتبار تنظیم کن
182 | this.style.borderColor = valid ? 'green' : 'red';
183 | });
184 |
185 | </script>
186 |
187 |
188 |
189 |
190 |
191 | | ردیف | 199 |نام بانک | 200 |شناسه بانک | 201 |الگوی رجکس | 202 |
|---|---|---|---|
| 1 | بانک مرکزی جمهوری اسلامی ایران | 010 | /\d{2}(010)\d+/g |
| 2 | بانک صنعت و معدن | 011 | /\d{2}(011)\d+/g |
| 3 | بانک ملت | 012 | /\d{2}(012)\d+/g |
| 4 | بانک رفاه | 013 | /\d{2}(013)\d+/g |
| 5 | بانک مسکن | 014 | /\d{2}(014)\d+/g |
| 6 | بانک سپه | 015 | /\d{2}(015)\d+/g |
| 7 | بانک کشاورزی | 016 | /\d{2}(016)\d+/g |
| 8 | بانک ملی ایران | 017 | /\d{2}(017)\d+/g |
| 9 | بانک تجارت | 018 | /\d{2}(018)\d+/g |
| 10 | بانک صادرات ایران | 019 | /\d{2}(019)\d+/g |
| 11 | بانک توسعه صادرات | 020 | /\d{2}(020)\d+/g |
| 12 | پست بانک ایران | 021 | /\d{2}(021)\d+/g |
| 13 | بانک توسعه تعاون | 022 | /\d{2}(022)\d+/g |
| 14 | موسسه اعتباری توسعه | 051 | /\d{2}(051)\d+/g |
| 15 | بانک کارآفرین | 053 | /\d{2}(053)\d+/g |
| 16 | بانک پارسیان | 054 | /\d{2}(054)\d+/g |
| 17 | بانک اقتصاد نوین | 055 | /\d{2}(055)\d+/g |
| 18 | بانک سامان | 056 | /\d{2}(056)\d+/g |
| 19 | بانک پاسارگاد | 057 | /\d{2}(057)\d+/g |
| 20 | بانک سرمایه | 058 | /\d{2}(058)\d+/g |
| 21 | بانک سینا | 059 | /\d{2}(059)\d+/g |
| 22 | قرض الحسنه مهر | 060 | /\d{2}(060)\d+/g |
| 23 | بانک شهر | 061 | /\d{2}(061)\d+/g |
| 24 | بانک آینده | 062 | /\d{2}(062)\d+/g |
| 25 | بانک انصار | 063 | /\d{2}(063)\d+/g |
| 26 | بانک گردشگری | 064 | /\d{2}(064)\d+/g |
| 27 | بانک حکمت ایرانیان | 065 | /\d{2}(065)\d+/g |
| 28 | بانک دی | 066 | /\d{2}(066)\d+/g |
| 29 | بانک ایران زمین | 069 | /\d{2}(069)\d+/g |
| نام بانک | 243 |پیش شماره | 244 |الگوی رجکس | 245 |
|---|---|---|
| بانک ملی | ۶۰۳۷۹۹ | /(603799)\d+/g |
| بانک سامان | ۶۲۱۹۸۶ | /(621986)\d+/g |
| بانک سپه | ۵۸۹۲۱۰ | /(589210)\d+/g |
| بانک سینا | ۶۳۹۳۴۶ | /(639346)\d+/g |
| بانک توسعه صادرات | ۶۲۷۶۴۸ | /(627648)\d+/g |
| بانک سرمایه | ۶۳۹۶۰۷ | /(639607)\d+/g |
| بانک صنعت و معدن | ۶۲۷۹۶۱ | /(627961)\d+/g |
| بانک شهر | ۵۰۴۷۰۶ | /(504706)\d+/g |
| بانک کشاورزی | ۶۰۳۷۷۰ | /(603770)\d+/g |
| بانک دی | ۵۰۲۹۳۸ | /(502938)\d+/g |
| بانک مسکن | ۶۲۸۰۲۳ | /(628023)\d+/g |
| بانک صادرات | ۶۰۳۷۶۹ | /(603769)\d+/g |
| پست بانک | ۶۲۷۷۶۰ | /(627760)\d+/g |
| بانک ملت | ۶۱۰۴۳۳ | /(610433)\d+/g |
| بانک توسعه تعاون | ۵۰۲۹۰۸ | /(502908)\d+/g |
| بانک تجارت | ۶۲۷۳۵۳ | /(627383)\d+/g |
| بانک اقتصاد نوین | ۶۲۷۴۱۲ | /(627412)\d+/g |
| بانک رفاه | ۵۸۹۴۶۳ | /(589463)\d+/g |
| بانک پارسیان | ۶۲۲۱۰۶ | /(622106)\d+/g |
| موسسه نور | ۵۰۷۶۷۷ | /(507677)\d+/g |
| بانک پاسارگاد | ۵۰۲۲۲۹ | /(502229)\d+/g |
| موسسه ملل | ۶۰۶۲۵۶ | /(606256)\d+/g |
| بانک قوامین | ۶۳۹۵۹۹ | /(639599)\d+/g |
| بانک قرض الحسنه مهر ایرانیان | ۶۰۶۳۷۳ | /(606373)\d+/g |
| بانک کارآفرین | ۶۲۷۴۸۸ | /(627488)\d+/g |
| بانک گردشگری | ۵۰۵۴۱۶ | /(505416)\d+/g |
| بانک آینده | ۶۳۶۲۱۴ | /(636214)\d+/g |