
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
A simple, clean, credit card form for your website. Includes number formatting, validation and automatic card type detection.

bower install card-js --saveYou will need to include both card-js.min.js and card-js.min.css into your web page.
For working examples of using CardJs, see the examples folder of this project.
Any elements with the class card-js will be automatically converted into a basic credit card input with the expiry date and CVC check.
The easiest way to get started with CardJs is to insert the snippet of code:
<div class="card-js"></div>
If you wish to manually alter the fields used by CardJs to add additional classes or set the input field name or id etc, you can pre-populate the form fields as show below.
<div class="card-js">
<input class="card-number my-custom-class" name="card-number">
<input class="name" id="the-card-name-id" name="card-holders-name" placeholder="Name on card">
<input class="expiry-month" name="expiry-month">
<input class="expiry-year" name="expiry-year">
<input class="cvc" name="cvc">
</div>
CardJs provides functionality allowing you to read the form field values directly with JavaScript. This can be useful if you wish to submit the values via Ajax.
Create a CardJs element and give it a unique id (in this example my-card)
<div class="card-js" id="my-card" data-capture-name="true"></div>
The javascript below demonstrates how to read each value of the form into local variables.
var myCard = $('#my-card');
var cardNumber = myCard.CardJs('cardNumber');
var cardType = myCard.CardJs('cardType');
var name = myCard.CardJs('name');
var expiryMonth = myCard.CardJs('expiryMonth');
var expiryYear = myCard.CardJs('expiryYear');
var cvc = myCard.CardJs('cvc');
To call a function on a CardJs element, follow the pattern below. Replace the text 'function' with the name of the function you wish to call.
$('#my-card').CardJs('function')
The functions available are listed below:
| Function | Description |
|---|---|
| cardNumber | Get the card number entered |
| cardType | Get the type of the card number entered |
| name | Get the name entered |
| expiryMonth | Get the expiry month entered |
| expiryYear | Get the expiry year entered |
| cvc | Get the CVC entered |
The cardType function will return one of the following strings based on the card number entered.
If the card type cannot be determined an empty string will be given instead.
| Card Type |
|---|
| AMEX |
| Diners |
| Diners - Carte Blanche |
| Discover |
| JCB |
| Mastercard |
| Visa |
| Visa Electron |
If you just want to perform simple operations without the CardJs form, there are a number of static functions provided by the CardJs library that are made available.
var cardNumber = '4242 4242 4242 4242'; // Spacing is not important
var cardType = CardJs.cardTypeFromNumber(cardNumber);
// var formatMask = 'XXXX XXXX XXXX XXXX'; // You can manually define an input mask
// var formatMask = 'XX+X X XXXX XXXX XXXX'; // You can add characters other than spaces to the mask
var formatMask = CardJs.CREDIT_CARD_NUMBER_VISA_MASK; // Or use a standard mask.
var cardNumber = '424 2424242 42 42 42';
var cardNumberWithoutSpaces = CardJs.numbersOnlyString(cardNumber);
var formattedCardNumber = CardJs.applyFormatMask(cardNumberWithoutSpaces, formatMask);
| Variable Name | Mask |
|---|---|
| CardJs.CREDIT_CARD_NUMBER_DEFAULT_MASK | XXXX XXXX XXXX XXXX |
| CardJs.CREDIT_CARD_NUMBER_VISA_MASK | XXXX XXXX XXXX XXXX |
| CardJs.CREDIT_CARD_NUMBER_MASTERCARD_MASK | XXXX XXXX XXXX XXXX |
| CardJs.CREDIT_CARD_NUMBER_DISCOVER_MASK | XXXX XXXX XXXX XXXX |
| CardJs.CREDIT_CARD_NUMBER_JCB_MASK | XXXX XXXX XXXX XXXX |
| CardJs.CREDIT_CARD_NUMBER_AMEX_MASK | XXXX XXXXXX XXXXX |
| CardJs.CREDIT_CARD_NUMBER_DINERS_MASK | XXXX XXXX XXXX XX |
The expiry month can be in the range: 1 = January to 12 = December
var month = 3;
var year = 2019;
var valid = CardJs.isExpiryValid(month, year);
The expiry month and year can be either and integer or a string.
var month = "3";
var year = "2019";
var valid = CardJs.isExpiryValid(month, year);
The expiry year can be either 4 digits or 2 digits long.
var month = "3";
var year = "19";
var valid = CardJs.isExpiryValid(month, year);
CardJs is released under the MIT license. View license
FAQs
Credit Card input form with validation
The npm package card-js receives a total of 286 weekly downloads. As such, card-js popularity was classified as not popular.
We found that card-js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.