472 lines
12 KiB
JavaScript
472 lines
12 KiB
JavaScript
//check CorpID
|
||
function CheckORG(CorpID){
|
||
var financecode = new Array();
|
||
if(CorpID=="00000000-0"|| CorpID.length!=10) return false;
|
||
for(var i=0;i<CorpID.length;i++){
|
||
financecode[i]= CorpID.charCodeAt(i);//取每位的ascii码
|
||
}
|
||
var w_i = new Array(8);
|
||
var c_i = new Array(8);
|
||
s = 0,c = 0;
|
||
w_i[0] = 3;
|
||
w_i[1] = 7;
|
||
w_i[2] = 9;
|
||
w_i[3] = 10;
|
||
w_i[4] = 5;
|
||
w_i[5] = 8;
|
||
w_i[6] = 4;
|
||
w_i[7] = 2;
|
||
if(financecode[8] != 45) return false;//第八位是否为-
|
||
for(i = 0; i < 10; i++){
|
||
c = financecode[i];
|
||
if(c <= 122 && c >= 97)
|
||
return false;
|
||
}
|
||
|
||
for(var j = 0; j < 8; j++){
|
||
if(financecode[j] >= 65 && financecode[j] <= 90) //字母
|
||
c_i[j] = (financecode[j] - 65) + 10;
|
||
else if(financecode[j] >= 48 && financecode[j] <= 57) //数字
|
||
c_i[j] = financecode[j] - 48;
|
||
else
|
||
return false;
|
||
s += w_i[j] * c_i[j];
|
||
}
|
||
|
||
c = 11 - s % 11;
|
||
return financecode[9] == 88 && c == 10 || c == 11 && financecode[9] == 48 || c == financecode[9] - 48;
|
||
}
|
||
//组织机构代码校验
|
||
function checkORGRight(obj) {
|
||
|
||
var code = obj;
|
||
if (code.length == 10) {
|
||
return checkORGRight1(obj);
|
||
}else if(code.length == 15){//营业执照号 / 税务登记证
|
||
var flag = isValidBusinessLicense(code);
|
||
if(!flag){
|
||
flag = isValidTaxCode(code);
|
||
}
|
||
if (!flag) {
|
||
//alert("组织机构代码/社会信用代码错误!");
|
||
}
|
||
return flag;
|
||
} else {
|
||
var flag = isValidSocialCreditIdentifier(code);
|
||
if (!flag) {
|
||
//alert("组织机构代码/社会信用代码错误!");
|
||
}
|
||
return flag;
|
||
}
|
||
}
|
||
function checkORGRight1(obj){//校验组织机构代码
|
||
var code=obj;
|
||
if(code.length>0){
|
||
code=code.substring(0,1);
|
||
if(code=="X"){return true;
|
||
}
|
||
}
|
||
var financecode=obj;
|
||
var fir_value, sec_value;
|
||
var w_i = new Array(8);
|
||
var c_i = new Array(8);
|
||
var j, s = 0;
|
||
var c, i;
|
||
|
||
var code = financecode;
|
||
|
||
if (code.length<1) {
|
||
//alert("请输入组织机构代码!");
|
||
return false;
|
||
}
|
||
|
||
if (code == "00000000-0") {
|
||
//mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
|
||
re = /[A-Z0-9]{8}-[A-Z0-9]/;
|
||
r = code.match(re);
|
||
if (r == null) {
|
||
// mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
|
||
w_i[0] = 3;
|
||
w_i[1] = 7;
|
||
w_i[2] = 9;
|
||
w_i[3] = 10;
|
||
w_i[4] = 5;
|
||
w_i[5] = 8;
|
||
w_i[6] = 4;
|
||
w_i[7] = 2;
|
||
|
||
if (financecode.charAt(8) != '-') {
|
||
// mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
|
||
for (i = 0; i < 10; i++) {
|
||
c = financecode.charAt(i);
|
||
if ((c <= 'z') && (c >= 'a'))
|
||
{
|
||
// mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
}
|
||
|
||
|
||
fir_value = financecode.charCodeAt(0);
|
||
sec_value = financecode.charCodeAt(1);
|
||
|
||
if (fir_value >= 'A'.charCodeAt(0) && fir_value <= 'Z'.charCodeAt(0)) {
|
||
c_i[0] = fir_value + 32 - 87;
|
||
} else {
|
||
if (fir_value >= '0'.charCodeAt(0) && fir_value <= '9'.charCodeAt(0)) {
|
||
c_i[0] = fir_value - '0'.charCodeAt(0);
|
||
} else {
|
||
//mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
}
|
||
|
||
s = s + w_i[0] * c_i[0];
|
||
|
||
if (sec_value >= 'A'.charCodeAt(0) && sec_value <= 'Z'.charCodeAt(0)) {
|
||
c_i[1] = sec_value + 32 - 87;
|
||
} else if (sec_value >= '0'.charCodeAt(0) && sec_value <= '9'.charCodeAt(0)) {
|
||
c_i[1] = sec_value - '0'.charCodeAt(0);
|
||
} else {
|
||
//mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
|
||
s = s + w_i[1] * c_i[1];
|
||
for (j = 2; j < 8; j++) {
|
||
if (financecode.charAt(j) < '0' || financecode.charAt(j) > '9') {
|
||
//alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
c_i[j] = financecode.charCodeAt(j) - '0'.charCodeAt(0);
|
||
s = s + w_i[j] * c_i[j];
|
||
}
|
||
|
||
c = 11 - (s % 11);
|
||
|
||
if (!((financecode.charAt(9) == 'X' && c == 10) ||
|
||
(c == 11 && financecode.charAt(9) == '0') || (c == financecode.charCodeAt(9) - '0'.charCodeAt(0)))) {
|
||
|
||
// mini.alert("组织机构代码/社会信用代码错误!");
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
function isValidBusinessLicense(code){
|
||
var businessCodeReg = /^\d{15}$/g;
|
||
if(!businessCodeReg.test(code)){
|
||
return false;
|
||
}
|
||
var s = [];
|
||
var p = [];
|
||
var a = [];
|
||
var m = 10;
|
||
p[0] = m;
|
||
for(var i = 0 ; i < code.length;i++){
|
||
a[i] = parseInt(code.substring(i,i+1),m);
|
||
s[i] = (p[i]%(m+1)) + a[i];
|
||
if(0 == s[i] % m){
|
||
p[i+1] = 10 *2;
|
||
}else {
|
||
p[i+1] = (s[i]%m)*2;
|
||
}
|
||
}
|
||
if(s[14]%m == 1){//校验位的合法性
|
||
//合法
|
||
return true;
|
||
}else{
|
||
return false;
|
||
}
|
||
}
|
||
function isValidTaxCode(code){
|
||
//前六位区域代码
|
||
var taxCodeReg = /^\d{14}[\d|X]$/g;
|
||
if(!taxCodeReg.test(code)){
|
||
return false;
|
||
}
|
||
var provinceAndCitys = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",
|
||
31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",
|
||
45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",
|
||
65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
|
||
//前六位区域代码
|
||
var areaId = code.substring(0,6);
|
||
var check = /^[1-9]\d{5}$/.test(areaId);
|
||
if(!check) return false;
|
||
if(provinceAndCitys[parseInt(code.substring(0,2))]){
|
||
return true;
|
||
}else{
|
||
return false;
|
||
}
|
||
|
||
var tCode = code.substr(6, 8) + "-" + code.substr(14, 1);
|
||
if (isValidEntpCode(tCode) == false){
|
||
return false;
|
||
}else{
|
||
return true;
|
||
}
|
||
}
|
||
// 验证社会信用代码 18位
|
||
function isValidSocialCreditIdentifier(code) {
|
||
if (code.length != 18)
|
||
return false;
|
||
var ws = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];
|
||
var str = "0123456789ABCDEFGHJKLMNPQRTUWXY";
|
||
//验证9-17位 的组织机构代码
|
||
var tCode = code.substr(8, 8) + "-" + code.substr(16, 1);
|
||
if (isValidEntpCode(tCode) == false)
|
||
return false;
|
||
var sum = 0;
|
||
for (var i = 0; i < 17; i++) {
|
||
sum += str.indexOf((code.substr(i, 1)) + "") * ws[i];
|
||
}
|
||
var c18 = 31 - (sum%31);
|
||
if(c18 > 30){
|
||
c18 = 0;
|
||
}
|
||
return (str.substr(c18, 1) + "") == (code.substr(17, 1));
|
||
}
|
||
function isValidEntpCode(code)
|
||
{
|
||
var ws = [3,7,9,10,5,8,4,2];
|
||
var str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||
var rx = /^([0-9A-Z]){8}-[0-9|X]$/g;
|
||
if (!rx.test(code)){return false;}
|
||
var sum = 0;
|
||
for (var i = 0; i < 8; i++)
|
||
{sum += str.indexOf((code.substr(i,1))+"") * ws[i];}
|
||
var c9 = 11 - (sum % 11);
|
||
var sc9 =c9+"";
|
||
if (11 == c9)
|
||
{sc9 = "0";}
|
||
else if (10 == c9)
|
||
{ sc9 = "X";}
|
||
return sc9==(code.substr(9,1));
|
||
}
|
||
//日期校验
|
||
function CheckDate(sDate){
|
||
return checkDate(sDate);
|
||
}
|
||
function checkDate(sDate){
|
||
var checkedDate = sDate;
|
||
var year,month,day;
|
||
//日期为空 长度不等于8或14 返回错误
|
||
var maxDay = new Array(0,31,29,31,30,31,30,31,31,30,31,30,31);
|
||
//if(checkedDate == null ) return false;
|
||
checkedDate = checkedDate.trim();
|
||
if (checkedDate.length != 8 && checkedDate.length != 14) {
|
||
return false;
|
||
}
|
||
year = checkedDate.substring(0, 4).trim();
|
||
month = checkedDate.substring(4, 6).trim();
|
||
day = checkedDate.substring(6, 8).trim();
|
||
|
||
// 日期中1至4位 年小于1900 返回错误
|
||
if (year < 1900) {
|
||
return false;
|
||
}
|
||
// 日期中5至6位 月在1至12区间之外 返回错误
|
||
if (month < 1 || month > 12) {
|
||
return false;
|
||
}else if(month < 10) month = month.substr(1, 1);
|
||
// 日期中7至8位 日在1至maxDay[month]区间之外 返回错误
|
||
if (day > maxDay[month] || day == 0) {
|
||
return false;
|
||
}
|
||
// 非闰年2月份日期大于29
|
||
if (day == 29 && month == 2 && (year % 4 != 0 || year % 100 == 0) && (year % 4 != 0 || year % 400 != 0))
|
||
{
|
||
return false;
|
||
}
|
||
if (checkedDate.length == 14) {
|
||
// 日期长度为14位
|
||
var hour = checkedDate.substring(8, 10);
|
||
var miniute = checkedDate.substring(10, 12);
|
||
var second = checkedDate.substring(12, 14);
|
||
|
||
// 日期中9至10位 小时在0至23区间之外 返回错误
|
||
if (hour > 23 || hour < 0) {
|
||
return false;
|
||
}
|
||
// 日期中11至12位 分钟在0至59区间之外 返回错误
|
||
if (miniute > 59 || miniute < 0) {
|
||
return false;
|
||
}
|
||
// 日期中13至14位 秒在0至59区间之外 返回错误
|
||
if (second > 59 || second < 0) {
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
function CheckPersonId(personId){
|
||
return checkPersonId(personId);
|
||
}
|
||
|
||
function checkPersonId(personId){
|
||
var strJiaoYan = new Array("1","0","X","9","8","7","6","5","4","3","2");
|
||
var intQuan = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
|
||
var intTemp = 0;
|
||
for (var i = 0; i < personId.length - 1; i++){
|
||
intTemp += personId.substring(i, i + 1) * intQuan[i];
|
||
}
|
||
intTemp %= 11;
|
||
return personId.substring(personId.length - 1)==strJiaoYan[intTemp];
|
||
}
|
||
|
||
//身份证校验
|
||
function CheckLicense(ID){
|
||
var checkedValue = ID;
|
||
checkedValue = checkedValue.trim();
|
||
if (checkedValue.length != 15 && checkedValue.length != 18)
|
||
return false;
|
||
var dateValue;
|
||
if (checkedValue.length == 15)
|
||
dateValue = "19" + checkedValue.substring(6, 12);
|
||
else
|
||
dateValue = checkedValue.substring(6, 14);
|
||
if (!checkDate(dateValue))
|
||
return false;
|
||
if (checkedValue.length == 18)
|
||
return checkPersonId(checkedValue);
|
||
return true;
|
||
}
|
||
|
||
//贷款卡卡号的正确性检验程序
|
||
function CheckLoanCardID(loanCardCode){
|
||
var financecode = new Array();
|
||
for(var i=0;i<loanCardCode.length;i++){
|
||
financecode[i]= loanCardCode.charCodeAt(i);
|
||
}
|
||
var weightValue = new Array(14);
|
||
var checkValue = new Array(14);
|
||
totalValue = 0;
|
||
c = 0;
|
||
weightValue[0] = 1;
|
||
weightValue[1] = 3;
|
||
weightValue[2] = 5;
|
||
weightValue[3] = 7;
|
||
weightValue[4] = 11;
|
||
weightValue[5] = 2;
|
||
weightValue[6] = 13;
|
||
weightValue[7] = 1;
|
||
weightValue[8] = 1;
|
||
weightValue[9] = 17;
|
||
weightValue[10] = 19;
|
||
weightValue[11] = 97;
|
||
weightValue[12] = 23;
|
||
weightValue[13] = 29;
|
||
for(var j = 0; j < 14; j++){
|
||
if (financecode[j] >= 65 && financecode[j] <= 90){
|
||
checkValue[j] = (financecode[j] - 65) + 10;
|
||
} else if (financecode[j] >= 48 && financecode[j] <= 57){
|
||
checkValue[j] = financecode[j] - 48;
|
||
} else {
|
||
return false;
|
||
}
|
||
totalValue += weightValue[j] * checkValue[j];
|
||
}
|
||
c = 1 + totalValue % 97;
|
||
val = (financecode[14] - 48) * 10 + (financecode[15] - 48);
|
||
return val == c;
|
||
}
|
||
|
||
//校验邮政编码
|
||
function CheckPostalcode(Postalcode){
|
||
var str = Postalcode;
|
||
str = str.trim();
|
||
if (str.length > 0){
|
||
if (str.length != 6 || str == "000000"){ //征信要求邮政编码不能六位全为0.
|
||
return false;
|
||
}
|
||
|
||
var Letters = "1234567890";
|
||
for (var i = 0;i < str.length;i++){
|
||
var CheckChar = str.charAt(i);
|
||
if (Letters.indexOf(CheckChar) == -1){
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
//校验电话号码
|
||
function CheckPhoneCode(PhoneCode){
|
||
var str = PhoneCode;
|
||
str = str.trim();
|
||
if (str.length > 0) {
|
||
var patrn=/^([0-9]{1,3}-)?([0-9]{2,4}-)?[0-9]{7,11}(-[0-9]{1,5})?$/;//匹配电话号码及手机号码
|
||
if (patrn.exec(str)) {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
}
|
||
|
||
//校验电子邮件地址
|
||
function CheckEMail(EMail){
|
||
var Count = 0;
|
||
var str = EMail;
|
||
str = str.trim();
|
||
if (str.length > 0) {
|
||
var Letters = "@";
|
||
//检查字符串中是否存在"@"字符
|
||
if (str.indexOf(Letters) == -1) {
|
||
return false;
|
||
}
|
||
//检查字符串中是否存在多个"@"字符
|
||
for (var i = 0;i < str.length;i++) {
|
||
var CheckChar = str.charAt(i);
|
||
if (Letters.indexOf(CheckChar) >= 0) {
|
||
Count = Count + 1;
|
||
}
|
||
}
|
||
if(Count > 1){
|
||
return false;
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
function CheckTypeScript(sCheckWord,sCheckType){
|
||
sCheckWord = sCheckWord.trim();
|
||
if(sCheckType=="2"){
|
||
var patrn=/^[0-9,.]{1,20}$/;
|
||
if (patrn.exec(sCheckWord)) return true;
|
||
}
|
||
return false;
|
||
}
|
||
//校验账号为全部数字
|
||
function CheckAccountNo(svalue){
|
||
var reg = new RegExp("^[0-9]*$");
|
||
if(!reg.test(svalue)){
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
//校验账号全部为数字或字母
|
||
function CheckAccountNoNumChar(svalue){
|
||
var reg = new RegExp("^[a-zA-Z0-9]*$");
|
||
if(!reg.test(svalue)){
|
||
return false;
|
||
}
|
||
return true;
|
||
}
|
||
//3.5水印bug,通过该校验进行必输项控制
|
||
/*function checkRequired(svalue){
|
||
if(typeof(svalue)=="undefined"||svalue.length==0){
|
||
return false;
|
||
}else{
|
||
return true;
|
||
}
|
||
}*/ |