JSPM

shaba

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q38065F
  • License MIT

JavaScript utilities to validate Iranian bank cards and IBAN (Sheba) codes, convert Persian numerals, and detect bank info.

Package Exports

  • shaba
  • shaba/dist/shaba.min.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (shaba) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

shaba


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

پیشنمایش: کلیک کنید - جایگذین | نسخه به همراه jquery در codepen

contribution: create pull/merge request on branch name shaba{weeknumber}{month}{year}

📦 نصب

CDN:

<script src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/dist/shaba.min.js"></script>

NPM:

npm install shaba


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


const card = shaba.convertPersianToEnglishDigits('۶۰۳۷۹۹...');
const isValid = shaba.validateCard(card);
const prefix = card.slice(0, 6);
const bank = shaba.getBankFromCard(prefix);
console.log(bank); // ["meli", "603799", "بانک ملی"]
    


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

  • convertPersianToEnglishDigits(str) — تبدیل ارقام فارسی/عربی به انگلیسی
  • validateCard(cardNumber) — بررسی اعتبار شماره کارت
  • getBankFromCard(prefix) — دریافت اطلاعات بانک از روی شماره کارت
  • getBankFromShaba(code) — دریافت بانک از کد شبا


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

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


🧪 نمونه کد


            
<!-- نمایش لوگوی بانک کارت -->
<img width="32px" id="cardBankLogo" src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/no-img.png"><span id="cardName"></span>

<!-- ورودی شماره کارت (با جهت چپ به راست برای اعداد) -->
<input type="text" id="cardInput" class="creditcart-input" style="direction:ltr" placeholder="شماره کارت را وارد کنید">

<!-- نمایش لوگوی بانک شبا -->
<img width="32px" id="shabaBankLogo" src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/no-img.png"><span id="shabaName"></span>

<!-- ورودی شماره شبا -->
<input type="text" id="shabaInput" class="shaba-input" style="direction:ltr" placeholder="کد شبا را وارد کنید">
<script src="https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/dist/shaba.min.js"></script>

<script type="text/javascript">
  // گرفتن المان‌های ورودی از صفحه
  const $card = document.getElementById('cardInput');
  const $shaba = document.getElementById('shabaInput');

  // وقتی شماره کارت تغییر می‌کند:
  $card.addEventListener('input', function () {
    const card = shaba.convertPersianToEnglishDigits(this.value); // تبدیل ارقام فارسی به انگلیسی
    const isValid = shaba.validateCard(card);                     // بررسی اعتبار کارت بانکی با الگوریتم Luhn
    const prefix = card.slice(0, 6);                              // گرفتن ۶ رقم اول کارت
    const bank = shaba.getBankFromCard(prefix);                  // گرفتن اطلاعات بانک از روی شماره کارت

    // تغییر تصویر لوگوی بانک
    document.getElementById('cardBankLogo').src =
      "https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/" + bank[0] + ".png";
    
       document.getElementById('cardName').innerHTML =  bank[2];  //نمایش نام بانک

    // رنگ حاشیه را سبز یا قرمز نمایش بده بر اساس اعتبار کارت
    this.style.borderColor = isValid ? 'green' : 'red';
  });

  // وقتی شبا تغییر می‌کند:
  $shaba.addEventListener('input', function () {
    // پاکسازی شبا از - و تبدیل اعداد فارسی/عربی به انگلیسی
    const input = shaba.convertPersianToEnglishDigits(this.value.toUpperCase().replace(/-/g, ''));

    const code = input.slice(2, 5);                               // استخراج کد بانک از شبا
    const bank = shaba.getBankFromShaba(code);                   // گرفتن اطلاعات بانک از شبا

    // تغییر تصویر لوگوی بانک
    document.getElementById('shabaBankLogo').src =
      "https://cdn.jsdelivr.net/gh/smohamadabedy/shaba@latest/bank-iran/" + bank[0] + ".png";

           document.getElementById('shabaName').innerHTML =  bank[1]; //نمایش نام بانک

    // آماده‌سازی و اعتبارسنجی با استاندارد ISO 7064 (Mod97)
    const prepared = shaba.iso13616Prepare(input);
    const valid = shaba.iso7064Mod97_10(prepared) === 1;

    // رنگ حاشیه ورودی را مشخص کن
    this.style.borderColor = valid ? 'green' : 'red';
  });
</script>


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

ردیف نام بانک شناسه بانک الگوی رجکس
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

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

نام بانک پیش شماره الگوی رجکس
بانک ملی۶۰۳۷۹۹/(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