Skip to content

Instantly share code, notes, and snippets.

@SiddharthaChowdhury
Created February 22, 2017 14:13
Show Gist options
  • Save SiddharthaChowdhury/573301a29e30c4230a53a1fbef106332 to your computer and use it in GitHub Desktop.
Save SiddharthaChowdhury/573301a29e30c4230a53a1fbef106332 to your computer and use it in GitHub Desktop.
module.exports = {
onlyNumber: function(sample){
// returns false if input is not a number
return /^([0-9]+)$/.test(sample);
},
onlyAlphabets: function(sample){
// returns false if input is not a string of alphabets
return /^([a-z]+)$/.test(sample);
},
alphanumeric: function(sample){
// returns false if string contains anything other than alphabets or numbers
return /^([a-zA-Z0-9]+)$/.test(sample);
},
password: function(sample){
/*
May contain letter and numbers
May contain blank space
Must contain at least 1 number and 1 letter
May contain any of these characters: ._@#$%
Must have atleast 8 characters
*/
return /^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z ._@#$%]{8,}$/.test(sample);
},
person_name: function(sample){
/*
Must be atleast 3 characters
May contain blank spaces
May contain "." (Dot) symbol only
*/
return /^([a-zA-Z.\s]+){3,}$/.test(sample.trim());
},
email: function(sample){
/* Pursuit of a valid email address */
return /^[A-Za-z0-9._-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/.test(sample);
},
street: function(sample){
/*
Must contain atleast 1 alphabet
May contain alphabets and numbers
May contain special symbols such as ._-
May contain blank spaces
*/
return /^(?=.*[A-Za-z])[A-Za-z0-9 .,#_-]{3,50}$/.test(sample);
},
state: function(sample) {
/*
Must contain atleast 1 alphabet
Must not contain numbers
May contain special symbols such as ._-
May contain blank spaces
*/
return /^(?=.*[A-Za-z])[A-Za-z ._-]{3,50}$/.test(sample);
},
acct_number: function(sample) {
/*
Must contain atleast 1 alphabet
Must contain atleast 1 number
Must not contain any special symbol or blank space
*/
return /^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z]{9,18}$/.test(sample);
},
credit_card_type: function(sample){
var cardWorld = {
mc: "Mastercard",
ec: "Eurocard",
vi: "Visa",
ax: "American Express",
dc: "Diners Club",
bl: "Carte Blanch",
di: "Discover",
jcb: "JCB",
er: "Enroute"
}
var flag = false;
for(var i in cardWorld){
if(sample == i || sample == cardWorld[i]){
flag = true;
break;
}
}
return flag;
},
credit_card_number: function(sample, card_type){
var cardinfo = {
'mc':'5[1-5][0-9]{14}',
'ec':'5[1-5][0-9]{14}',
'vi':'4(?:[0-9]{12}|[0-9]{15})',
'ax':'3[47][0-9]{13}',
'dc':'3(?:0[0-5][0-9]{11}|[68][0-9]{12})',
'bl':'3(?:0[0-5][0-9]{11}|[68][0-9]{12})',
'di':'6011[0-9]{12}',
'jcb':'(?:3[0-9]{15}|(2131|1800)[0-9]{11})',
'er':'2(?:014|149)[0-9]{11}'
}
sample = String(sample).replace(/[- ]/g,''); //ignore dashes and whitespaces
var results = [];
if(card_type){
var expr = '^' + cardinfo[card_type.toLowerCase()] + '$';
return expr ? !!sample.match(expr) : false; // boolean
}
else
return false;
for(var p in cardinfo){
if(sample.match('^' + cardinfo[p] + '$')){
results.push(p);
}
}
return results.length ? results.join('|') : false; // String | boolean
},
CVVorCVC:function(sample, cardType){
var _length;
switch (cardType.toLowerCase()){
case 'mc':
case 'ec':
case 'vi':
case 'di':
case 'dc':
case 'jcb':
case 'er':
case 'bl':
_length = 3;
break;
case 'ax':
_length = 4;
break;
}
if(/^([0-9]+)$/.test(sample)){
if(sample.toString().length == _length)
return true;
}
return false;
},
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment