checkSocialCreditCode: function(Code) {
var patrn = /^[0-9A-Z]+$/
// 18位校验及大写校验
if ((Code.length != 18) || (patrn.test(Code) == false)) {
console.info('不是有效的统一社会信用编码!')
return false
} else {
var Ancode
// 统一社会信用代码的每一个值
var Ancodevalue
// 统一社会信用代码每一个值的权重
var total = 0
var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]
// 加权因子
var str = '0123456789ABCDEFGHJKLMNPQRTUWXY'
// 不用I、O、S、V、Z
for (var i = 0; i < Code.length - 1; i++) {
Ancode = Code.substring(i, i + 1)
Ancodevalue = str.indexOf(Ancode)
total = total + Ancodevalue * weightedfactors[i]
// 权重与加权因子相乘之和
}
var logiccheckcode = 31 - total % 31
if (logiccheckcode == 31) {
logiccheckcode = 0
}
var Str = '0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y'
var Array_Str = Str.split(',')
logiccheckcode = Array_Str[logiccheckcode]
var checkcode = Code.substring(17, 18)
if (logiccheckcode != checkcode) {
console.info('不是有效的统一社会信用编码!')
return false
} else {
console.info('yes')
}
return true
}
},
// 身份证认证
isCardNo: function(id) {
// 1 "验证通过!", 0 //校验不通过 // id为身份证号码
var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/
// 号码规则校验
if (!format.test(id)) {
// return {'status':0,'msg':'身份证号码不合规'};
return false
}
// 区位码校验
// 出生年月日校验 前正则限制起始年份为1900;
var year = id.substr(6, 4)
// 身份证年
var month = id.substr(10, 2)
// 身份证月
var date = id.substr(12, 2)
// 身份证日
var time = Date.parse(month + '-' + date + '-' + year)
// 身份证日期时间戳date
var now_time = Date.parse(new Date())
// 当前时间戳
var dates = (new Date(year, month, 0)).getDate()
// 身份证当月天数
if (time > now_time || date > dates) {
// return { 'status': 0, 'msg': '出生日期不合规' }
return false
}
// 校验码判断
var c = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
// 系数
var b = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
// 校验码对照表
var id_array = id.split('')
var sum = 0
for (var k = 0; k < 17; k++) {
sum += parseInt(id_array[k]) * parseInt(c[k])
}
if (id_array[17].toUpperCase() != b[sum % 11].toUpperCase()) {
// return { 'status': 0, 'msg': '身份证校验码不合规' }
return false
}
// return { 'status': 1, 'msg': '校验通过' }
return true
},
// 字段为空 -代替
isNull(str) {
if (!str) {
str = '--'
}
return str
},
// ObjectToData
ObjectToDate(param) {
if (!param) {
return ''
} else {
return param.year + '-' + param.monthValue + '-' + param.dayOfMonth
}
},
ObjectToDateTime(param) {
if (!param) {
return ''
} else {
return param.year + '-' + param.monthValue + '-' + param.dayOfMonth + ' ' + param.hour + ':' + param.minute + ':' + param.second
}
},
// format 'yyyy-MM-dd' to ''
formatDate(date, type) {
var newDate = ''
var year = ''
var month = ''
var day = ''
if (!date) {
return ''
} else {
newDate = date.split('-')
year = newDate[0] ? newDate[0] : '--'
month = newDate[1] ? newDate[1] : '00'
day = newDate[2] ? newDate[2] : '00'
if (type == 'yyyyMMdd') {
return year + '' + month + '' + day
} else if (type == 'yyyy/MM/dd') {
return year + '/' + month + '/' + day
} else if (type == 'yyyy-MM') {
return year + '-' + month
} else if (type == 'yyyy/MM') {
return year + '/' + month
} else if (type == 'yyyy-MM-dd 00:00:00') {
return year + '-' + month + '-01 00:00:00'
}
if (type == 'yyyy MM dd') {
return {
year: year,
month: month,
day: day
}
}
}
},
// format date to ''
FormatDate(date, type) {
var year = date.getFullYear()
// js中是从0开始所以要加1
var month = date.getMonth() + 1
var day = date.getDate()
var hour = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
if (type == 'yyyy-MM-dd') {
return year + '-' + month + '-' + day
}
if (type == 'yyyy/MM/dd') {
return year + '/' + month + '/' + day
}
if (type == 'yyyy-MM-dd HH:mm:ss') {
hour = hour > 10 ? hour : '0' + hour
minute = minute > 10 ? minute : '0' + minute
second = second > 10 ? second : '0' + second
return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
}
},
// 将一个对象转成QueryString
toQueryString(obj) {
if (!obj) return ''
return this.cleanArray(
Object.keys(obj).map(key => {
if (obj[key] === undefined) return ''
return encodeURIComponent(key) + '=' + encodeURIComponent(obj[key])
})
).join('&')
},
cleanArray(actual) {
const newArray = []
for (let i = 0; i < actual.length; i++) {
if (actual[i]) {
newArray.push(actual[i])
}
}
return newArray
},
// 验证电话联系方式
ValidatePhone(val) {
var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/; //手机号码
var isMob = /^0?1[3|4|5|8][0-9]\d{8}$/; // 座机格式
if (isMob.test(val) || isPhone.test(val)) {
return true;
} else {
return false;
}
}
常用格式转换及验证
最新推荐文章于 2022-08-19 11:06:36 发布