- 金钱数字格式化 ( 99999999 => 99,999,999 )
'99999999'.replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,');
- 删除重复相邻字符( ‘aaabbbcdfgghhjjkkk’ -> ‘abcdfghjk’)
'aaabbbcdfgghhjjkkk'.replace(/([A-Za-z]{1})(\1)+/g, '$1');
- 字符串中单词首字母大写( ’ hi man good luck ’ -> ’ Hi Man Good Luck’)
' hi man good luck '.replace(/\w+/g, function(word) { return word.substr(0,1).toUpperCase() + word.substr(1)});
isCardID: function ( cardID ) {
var _vcity = {
: "北京", 12 : "天津", 13 : "河北", 14 : "山西", 15 : "内蒙古",
: "辽宁", 22 : "吉林", 23 : "黑龙江", 31 : "上海", 32 : "江苏",
: "浙江", 34 : "安徽", 35 : "福建", 36 : "江西", 37 : "山东",
: "河南", 42 : "湖北", 43 : "湖南", 44 : "广东", 45 : "广西",
: "海南", 50 : "重庆", 51 : "四川", 52 : "贵州", 53 : "云南",
: "西藏", 61 : "陕西", 62 : "甘肃", 63 : "青海", 64 : "宁夏",
: "新疆", 71 : "台湾", 81 : "香港", 82 : "澳门", 91 : "国外"
};
var _isCardNo = function (obj) {
return /(^\d{15}$)|(^\d{17}(\d|X)$)/.test(obj);
};
var _checkProvince = function (obj) {
var province = obj.substr(0, 2);
return !!_vcity[province];
};
var _checkBirthday = function (obj) {
var len = obj.length
,arr_data, year, month, day, birthday;
if (len == '15') {
var re_fifteen = /^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/;
arr_data = obj.match(re_fifteen);
year = arr_data[2];
month = arr_data[3];
day = arr_data[4];
birthday = new Date('19' + year + '/' + month + '/' + day);
return _verifyBirthday('19' + year, month, day, birthday);
}
if (len == '18') {
var re_eighteen = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/;
arr_data = obj.match(re_eighteen);
year = arr_data[2];
month = arr_data[3];
day = arr_data[4];
birthday = new Date(year + '/' + month + '/' + day);
return _verifyBirthday(year, month, day, birthday);
}
return false;
};
var _verifyBirthday = function (year, month, day, birthday) {
var now = new Date();
var now_year = now.getFullYear();
if (birthday.getFullYear() == year && (birthday.getMonth() + 1) == month && birthday.getDate() == day) {
var time = now_year - year;
return (time >= 0 && time <= 150);
}
return false;
};
var _checkParity = function (obj) {
obj = _changeFifteenToEighteen(obj);
var len = obj.length;
if (len == '18') {
var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
,arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
,cardTemp = 0,
i,
valnum;
for (i = 0; i < 17; i++) {
cardTemp += obj.substr(i, 1) * arrInt[i];
}
valnum = arrCh[cardTemp % 11];
return (valnum == obj.substr(17, 1));
}
return false;
};
var _changeFifteenToEighteen = function (obj) {
if (obj.length == '15') {
var arrInt = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var arrCh = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
var cardTemp = 0,
i;
obj = obj.substr(0, 6) + '19' + obj.substr(6, obj.length - 6);
for (i = 0; i < 17; i++) {
cardTemp += obj.substr(i, 1) * arrInt[i];
}
obj += arrCh[cardTemp % 11];
return obj;
}
return obj;
};
if ( (cardID = this.trim(cardID)) === false ) {
return false
}
if ( _isCardNo(cardID) === false ) {
return false;
}
if ( _checkProvince(cardID) === false ) {
return false;
}
if ( _checkBirthday(cardID) === false ) {
return false;
}
return _checkParity(cardID);
};