/*** 是否满足手机号码的要求 */
function isPhoneNumber(obj) {
var phoneID = /^((13|14|15|16|17|18|19)){1}\d{9}$/;
if (!phoneID.test(obj)) {
return false;
} else {
return true;
}
}
/**是否满足电信手机号码的要求 */
function isDXPhoneNumber(obj) {
var phoneID = /^1(33|49|53|7[37]|8[019]|9[19])\d{8}/;
if (!phoneID.test(obj)) {
return false;
} else {
return true;
}
}
/*** 是不是电话号码*/
function isPhone(obj) {
var strPhone = obj;
var phoneRegWithArea1 = /^(\d){7,12}$/;
if (strPhone.length != 0) {
if (phoneRegWithArea1.test(strPhone)) {
return true;
} else {
return false;
}
}
}
/*** 是不是邮箱/
function isEmail(obj) {
var patrn;
patrn = /^([a-zA-Z0-9]+[_|-|.]?)[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|-|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/;
if (!patrn.exec(obj)) {
return false;
}
return true;
}
/*** 是不是为空*/
function isNull(str) {
str = $.trim(str);
if (!str || str == "" || str == "null" || str == "undefined")
return true;
return false;
}
/*** 判断身份证号码
@param num
@param isNew 是不是新标准 true为新标准
-
@returns {*}
*/
function isIDCardNum(num, isNew) {
if (isNew) {
if (num.length != 18) {
return '输入的身份证号长度不对,或者号码不符合规定!18位号码末位可以为数字或X。';
}
}
num = num.toUpperCase();
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
if (!(/(^\d{15})/.test(num))) {
return '输入的身份证号长度不对,或者号码不符合规定!15位号码应全为数字,18位号码末位可以为数字或X。';
}
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
//下面分别分析出生日期和校验位
var len, re;
len = num.length;
if (len == 15) {
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrSplit = num.match(re);//检查生日日期是否正确 var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return '输入的身份证号里出生日期不对!'; } else { //将15位身份证转成18位 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6); for (i = 0; i < 17; i++) { nTemp += num.substr(i, 1) * arrInt[i]; } num += arrCh[nTemp % 11]; return true; }
}
if (len == 18) {
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = num.match(re);//检查生日日期是否正确 var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]); var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4])); if (!bGoodDay) { return '输入的身份证号里出生日期不对!'; } else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。 var valnum; var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); var nTemp = 0, i; for (i = 0; i < 17; i++) { nTemp += num.substr(i, 1) * arrInt[i]; } valnum = arrCh[nTemp % 11]; if (valnum != num.substr(17, 1)) { //$("#tip").html('18位身份证的校验码不正确!应该为:' + valnum); return '18位身份证的校验码不正确!'; } return true; }
}
return '18位身份证的校验码不正确!';
}
/**
截取字符串长度
str 需要传入的字符串
number 需要的目标字符串位数
count 不包括点的字符串长度数
var str = "gfhjjuikoilolili";
str.part(str,5,5);//gfhjj..
*/
String.prototype.part = function (str, number, count) {
if (str.length > number) {
return str = str.substring(0, count) + "..";
} else {
return str;
}
}
/*** 获取字符串中所有的数字
- str:字符串
*/
String.prototype.getNum = function (str) {
if (!isNull(str)) {
return str.replace(/[^0-9]/ig, "");
} else {
return str;
}
}
/**
- 替换所有
- str:字符串
*/
String.prototype.replaceAll = function (s1, s2) {
return this.replace(new RegExp(s1, "gm"), s2);
}
/**
- 展示loading框
*/
function showLoginWaitCurr(top, left) {
var page =("body").width() / 2 - 70); //页面初始化让loadding居中
page.find('#loginWait').css("top", top);
page.find('#loginWait').show();
}
/**
- 隐藏loading框
*/
function hideLoginWaitCurr() {
$('body').find("#loginWait").hide();
}
/**
- 新增cookie
- @param name
- @param value
- @param days
*/
function setCookie(name, value, days) {
if (days >= 0) {
days = (typeof(days) == "undefined") ? 0 : days;
var exp = new Date();
exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
} else if (days == -1) {
document.cookie = name + "=" + escape(value) + ";expires=-1;path=/";
}
}
/**
- 获取cookie
- @param name
- @returns {string}
/
function getCookie(name) {
var arr, reg = new RegExp("(^| )" + name + "=([^;])(;|$)");
if (arr = document.cookie.match(reg))
return unescape(arr[2]);
else
return "";
}
/** - 获取当前日期
- @returns {string}
*/
function getNowDate() {
var date = new Date();
var sign1 = "-";
var sign2 = ":";
var year = date.getFullYear() // 年
var month = date.getMonth() + 1; // 月
var day = date.getDate(); // 日
var hour = date.getHours(); // 时
var minutes = date.getMinutes(); // 分
var seconds = date.getSeconds() //秒
// var weekArr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天'];
// var week = weekArr[date.getDay()];
// 给一位数数据前面加 “0”
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (day >= 0 && day <= 9) {
day = "0" + day;
}
if (hour >= 0 && hour <= 9) {
hour = "0" + hour;
}
if (minutes >= 0 && minutes <= 9) {
minutes = "0" + minutes;
}
if (seconds >= 0 && seconds <= 9) {
seconds = "0" + seconds;
}
var currentdate = year + sign1 + month + sign1 + day + " " + hour + sign2 + minutes + sign2 + seconds;
return currentdate;
}
/**
- 格式化时间
- @param fmt yyyy-MM-dd
- @param date 时间
- @returns {*}
*/
function dateFormat(fmt, date) {
var o = {
"M+": date.getMonth() + 1, //月份
"d+": date.getDate(), //日
"h+": date.getHours(), //小时
"m+": date.getMinutes(), //分
"s+": date.getSeconds(), //秒
"q+": Math.floor((date.getMonth() + 3) / 3), //季度
"S": date.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
/**
- 上传文件
- <script type="text/javascript" src="${requestContext.contextPath}/resources/scripts/jquery.form.min.js"></script>
- @param url 上传url
- @param formId 表单id
- @param successCallback 成功回调
- @param errorCallback 错误回调
*/
function upload(url, formId, successCallback, errorCallback) {
var form = $('#' + formId);
form.attr("action", url);
form.attr("enctype", "multipart/form-data");
form.attr("method", "post");
form.ajaxSubmit({
dataType: "json",
clearForm: true, //提交成功重置表单
success: function (data) {
successCallback(data);
},
error: function (data) {
errorCallback(data);
}
}).submit();
}
/**
- 文件下载
- @param url 下载链接
- @param data 请求数据对象{key:value}
- @param requestType 请求类型 get或post 默认为post
*/
var downloadFile = function (url, data, requestType) {
if (isNull(requestType)) {
requestType = "post";
}
//转为json格式
data = JSON.stringify(data);
var('<div id="down-file-div"/>');
var('<form method="' + requestType + '" />');
form.append("<input type='hidden' name='data' value='" + data + "' />");
form);
div);
div.remove();
}
/**
- 计算两个日期相差的天数
- @param sDate1
- @param sDate2
- @returns {number|*}
- sDate1和sDate2是2006-12-18格式
*/
function datedifference(sDate1, sDate2) {
var dateSpan,
iDays;
sDate1 = Date.parse(sDate1);
sDate2 = Date.parse(sDate2);
dateSpan = sDate2 - sDate1;
dateSpan = Math.abs(dateSpan);
iDays = Math.floor(dateSpan / (24 * 3600 * 1000));
return iDays
}
/**
- 计算两个日期相差的分钟
- @param sDate1
- @param sDate2
- @returns {number|*}
- sDate1和sDate2是2006-12-18格式
*/
function datedifferenceMin(sDate1, sDate2) {
var dateSpan,
iDays;
sDate1 = Date.parse(sDate1);
sDate2 = Date.parse(sDate2);
dateSpan = sDate2 - sDate1;
dateSpan = Math.abs(dateSpan);
iDays = Math.floor(dateSpan / (60 * 1000));
return iDays
}
/**
- 是不是微信浏览器
- @returns {boolean}
*/
function isWxBrowser() {
//window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型
var ua = window.navigator.userAgent.toLowerCase();
//通过正则表达式匹配ua中是否含有MicroMessenger字符串
if (ua.match(/MicroMessenger/i)) {
return true;
} else {
return false;
}
}
/**
- 是不是支付宝浏览器
- @returns {boolean}
*/
function isAliBrowser() {
//window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型
var ua = window.navigator.userAgent.toLowerCase();
console.log(ua);
//通过正则表达式匹配ua中是否含有MicroMessenger字符串
if (ua.match(/Alipay/i)) {
return true;
} else {
return false;
}
}
/**
- 获取n位随机数
- @param n
- @returns {*}
*/
function getRandom(n) {
if (n > 21) return null
return parseInt((Math.random() + 1) * Math.pow(10, n - 1))
}
/**
- 根据身份证 获取信息
- @param UUserCard
- @param num
- @returns {*}
- @constructor
*/
function idCard(UUserCard, num) {
if (num == 1) {
//获取出生日期
birth = UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
return birth;
}
if (num == 2) {
//获取性别
if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
//男
return "男";
} else {
//女
return "女";
}
}
if (num == 3) {
//获取年龄
var myDate = new Date();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
age++;
}
return age;
}
}