//验证 是否是字母数字 0 1 2
export function checkPass(pass) {
if (pass.length < 6) {
return 0;
}
var ls = 0;
if (pass.match(/([a-z])+/)) {
ls++;
}
if (pass.match(/([0-9])+/)) {
ls++;
}
if (pass.match(/([A-Z])+/)) {
ls++;
}
if (pass.match(/[^a-zA-Z0-9]+/)) {
ls++;
}
return ls;
}
//
export function IdentityCodeValid(code) {
var city={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 tip = "";
var pass= true;
if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){
tip = "身份证号格式错误";
pass = false;
}
else if(!city[code.substr(0,2)]){
tip = "地址编码错误";
pass = false;
}
else{
//18位身份证需要验证最后一位校验位
if(code.length == 18){
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
//校验位
var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++)
{
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
var last = parity[sum % 11];
if(parity[sum % 11] != code[17]){
tip = "校验位错误";
pass =false;
}
}
}
console.log(tip)
// if(!pass) alert(tip);
return pass;
}
//时间戳转日期
export function timestampToTime(timestamp,type) {
var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
var D = date.getDate() <10? '0'+date.getDate()+ ' ' : date.getDate() + ' ';
var h = date.getHours()<10? '0'+date.getHours()+ ':' : date.getHours() + ':';
var m = date.getMinutes() <10? '0'+date.getMinutes()+ ':' : date.getMinutes() + ':';
var s = date.getSeconds();
if(type){
if(s<10){
return Y+M+D+h+m+'0'+s;
}else{
return Y+M+D+h+m+s;
}
}else{
return Y+M+D;
}
}
/**
* @name 校验正整数
*/
export const integer = (str) => {
let r = /^\+?[1-9][0-9]*$/; //正整数
return r.test(str);
}
/**
* @name 校验数字带小数点
*/
export const dotNumber = (str) => {
let r = /^\+?[1-9][0-9&.]*$/; //正整数
return r.test(str);
}
两位小数 限制最大整数位
/**
* @name 保留正整数str,leg(值,保存位数)
*/
export const numberInt = (str, leg) => {
if( leg && str.length > leg ) {
str = str.slice( 0,leg );
}
let int = Number( parseInt(str)).toString() != 'NaN' || str == '' ? Number( parseInt(str)).toString() : '';
return int
}
/**
* @name 数字,保留两位小数 str,maxStr(值,最大值)
*/
export const floatInt = (str,maxStr) => {
let float = str.match( /^\d*(\.?\d{0,2})/g)[0]
if( float > maxStr ) {
float = ( float/10 ).toString().match( /^\d*(\.?\d{0,2})/g)[0]
}
return float
}