apzl_leasing/WebContent/Frame/resources/js/checkdatavalidity.js
2018-06-03 22:26:41 +08:00

472 lines
12 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//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;
}
}*/