├── 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 |

📦 نصب

13 |

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 |

19 | 20 |

🧪 مثال استفاده

21 |

 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 |

29 |

🧠 توابع در دسترس

30 | 36 |

37 |

🖼 استفاده از لوگوهای بانکی

38 |
<img src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/meli.png">
39 |

40 |

🧪 نمونه کد

41 |
 42 | 
 43 | 			
 44 | 	
 45 | 	
 46 | 	
 47 | 	
 48 | 	
 49 | 	
 50 | 	
 51 | 	
 52 | 	
 53 | 	
 54 | 	
 55 | 
 56 | 	
 57 | 	
 58 | 	
102 | 
103 | 
104 |
105 |

دستورالعمل تشخیص بانک از طریق شماره شبا

106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 |
ردیفنام بانکشناسه بانکالگوی رجکس
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
148 |
149 |

دستورالعمل تشخیص بانک از شماره کارت

150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 |
نام بانکپیش شمارهالگوی رجکس
بانک ملی۶۰۳۷۹۹/(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
189 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | SHABA 7 | 8 | 69 | 70 | 71 | 72 |

🟢 SHABA

73 |

توجه: تلفظ صحیح شبا به صورت (SHEBA) میباشد.

74 |
75 |
76 |

پیشنمایش

77 | 78 |
79 | 80 | 81 |
82 |
83 | 84 |
85 | 86 | 87 |
88 | 89 | 90 |
91 |
92 | 93 |
94 |
95 |
96 | 97 |
98 |

راهنمای استفاده از شبا

99 |

100 | اعتبار سنجی و تشخیص (به همراه تصویر) شماره کارت و شماره شبا بانک 101 |

102 |

103 |

📦 نصب

104 |

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 |

110 |

🧪 مثال استفاده

111 |

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 |

119 |

🧠 توابع در دسترس

120 | 126 |

127 |

🖼 استفاده از لوگوهای بانکی

128 |
<img src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/meli ... .png">
129 |

130 |

🧪 نمونه کد

131 |
<!-- نمایش لوگوی بانک کارت -->
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 |
192 | 193 |

دستورالعمل تشخیص بانک از طریق شماره شبا

194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 |
ردیفنام بانکشناسه بانکالگوی رجکس
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
236 |
237 |

دستورالعمل تشخیص بانک از شماره کارت

238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 |
نام بانکپیش شمارهالگوی رجکس
بانک ملی۶۰۳۷۹۹/(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
277 |
278 | 279 | 280 | 281 | 308 | 309 | 310 | --------------------------------------------------------------------------------