我的js公共函数合集
在uni开发中制定一些自己的公共函数,
主要有 数据有效定义、模态框、身份证号等一系列要被用到的验证和常用的代码。
isDefin: function(value) { //数据是否被定义
if (value == null || value == "" || value == "undefined" || value == undefined || value == "null" || value ==
"(null)" || value == 'NULL' || typeof(value) == 'undefined') {
return false;
} else {
value = value + "";
value = value.replace(/\s/g, ""); //全局匹配空白字符
if (value == "") {
return false;
}
return true;
}
},
/**
* 显示模态加载
* uni.hideLoading(); //关闭
*/
show_progress:function() {
uni.showLoading({
'title':'玩命加载中...',
'mask':true
})
},
diyToast:function(title,icon="none",position="center"){ //自定义提示
if(icon=="none"||icon=="success"||icon=="loading"){
uni.showToast({
"title":title,
"duration":1500,
"position":position,
"icon":icon
})
}else{
uni.showToast({
"title":title,
"duration":1500,
"position":position,
"image":icon
})
}
},
/**
* 验证手机号
* @param mobile
* @returns {boolean}
*/
checkMobile:function(mobile) {
if (mobile.length == 0) {
this.diyToast('请输入手机号');
return false;
}
if (mobile.length != 11) {
this.diyToast('请输入有效的手机号码');
return false;
}
var myreg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
if (!myreg.test(mobile)) {
this.diyToast('请输入有效的手机号码');
return false;
}
return true;
},
/**
* 验证身份证号
*/
checkRealNunber:function(realNumber) {
if (!isDefine(realNumber)) {
this.diyToast('身份证号不能为空!');
return false;
}
var myreal = /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if (!myreal.test(realNumber)) {
this.diyToast('请输入有效的身份证号!');
return false;
}
return true;
},
/**
* 验证是否为空
*/
checkAction:function(val,title="输入") {
if (val.length == 0||this.isDefin(val)==false) {
this.diyToast(title+"不能为空哦~");
return false;
}
return true;
},
/**
* 编码url参数
* @param {Object} param
*/
enUrlData:function(param){
return encodeURIComponent(JSON.stringify(param));
},
/**
* 解码url参数
* @param {Object} param
*/
deUrlData:function(param){
return JSON.parse(decodeURIComponent(param));
},
idcard:function(gets){
//该方法由佚名网友提供, 验证身份证(准确验证);
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子;
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份证验证位值,10代表X;
if (gets.length == 15) {
return isValidityBrithBy15IdCard(gets);
}else if (gets.length == 18){
var a_idCard = gets.split("");// 得到身份证数组
if (isValidityBrithBy18IdCard(gets)&&isTrueValidateCodeBy18IdCard(a_idCard)) {
return true;
}
return false;
}
return false;
function isTrueValidateCodeBy18IdCard(a_idCard) {
var sum = 0; // 声明加权求和变量
if (a_idCard[17].toLowerCase() == 'x') {
a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作
}
for ( var i = 0; i < 17; i++) {
sum += Wi[i] * a_idCard[i];// 加权求和
}
valCodePosition = sum % 11;// 得到验证码所位置
if (a_idCard[17] == ValideCode[valCodePosition]) {
return true;
}
return false;
}
function isValidityBrithBy18IdCard(idCard18){
var year = idCard18.substring(6,10);
var month = idCard18.substring(10,12);
var day = idCard18.substring(12,14);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 这里用getFullYear()获取年份,避免千年虫问题
if(temp_date.getFullYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){
return false;
}
return true;
}
function isValidityBrithBy15IdCard(idCard15){
var year = idCard15.substring(6,8);
var month = idCard15.substring(8,10);
var day = idCard15.substring(10,12);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
if(temp_date.getYear()!=parseFloat(year) || temp_date.getMonth()!=parseFloat(month)-1 || temp_date.getDate()!=parseFloat(day)){
return false;
}
return true;
}
}
没啥想说的