var currturl = window.location.href; //获取当前url
var body_widths=isMobile=="true"?window.innerWidth:document.body.clientWidth;
var body_heights=isMobile=="true"?window.innerHeight:window.screen.availHeight;
//跳转页面
function linkto(str) {
window.location.href = str;
};
// 刷新页面
function reload(time) {
location.reload();
}
//返回上一页
function back(){
window.history.go(-1);
}
/*去除""或undefind null*/
function checkNulls(obj) {
var isNull=false;
if (obj === null || typeof (obj) === "undefined") {
isNull=true;
}else{
var type = (typeof (obj)).toLowerCase();
if (type === "string" && (obj.toString()).replace(/(^\s*)|(\s*$)/g, "") === "") {
isNull=true;
}
if(type=="object"){
isNull=false;
}
}
return isNull;
}
/* 去除 undefind、 null 全部设为 "" */
function removeNull(obj) {
if (obj === null || typeof (obj) === "undefined") {
obj="";
}else{
var type = (typeof (obj)).toLowerCase();
if(type === "string" ){
if( (obj.toString()).replace(/(^\s*)|(\s*$)/g, "") === ""){
obj="";
}else{
obj=obj.replace(/(^\s*)|(\s*$)/g, "")
}
}
}
return obj;
}
//判断图片是否存在
function IsExist(imgurl) {
var ImgObj = new Image(); //判断图片是否存在
ImgObj.src = imgurl;
//没有图片,则返回-1
if (ImgObj.fileSize > 0 || (ImgObj.width > 0 && ImgObj.height > 0)) {
return true;
} else {
return false;
}
}
//加零
function addzerro(str) {
if (parseInt(str) < 10) {
return "0" + parseInt(str);
}
else {
return parseInt(str);
}
}
//获取url参数
function geturl(name) {
var reg = new RegExp("(^|\\?|&)" + name + "=([^&]*)(\\s|&|$)", "i");
if (reg.test(location.href)) return decodeURI(RegExp.$2.replace(/\+/g, " ")); return "";
};
/**
* 获取日期当月最后一天 为空时为当前日期
* day : 要转换的日期 格式:2017.06.01 或 2017.06
*/
function getLastDay(day) {
day= day || "";
var mydate =day==""?new Date():new Date(day);
var year = parseInt(mydate.getFullYear());
var month =mydate.getMonth() + 1
month=parseInt(month)<10?"0" + parseInt(month):parseInt(month);
var new_year = year; //取当前的年份
var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)
if (month > 12) //如果当前大于12月,则年份转到下一年
{
new_month -= 12; //月份减
new_year++; //年份增
}
var new_date = new Date(new_year, new_month, 1); //取当年当月中的第一天
return (new Date(new_date.getTime() - 1000 * 60 * 60 * 24)).getDate();//获取当月最后一天日期
}
//月份小写转大写
function changecapital(str) {
str = String(str);
var parses=["","一","二","三","四","五","六","七","八","九","十","十一","十二"]
var str1 = parses[str] || ""
return str1;
}
//随机数时间戳
function uniqueId() {
var a = Math.random, b = parseInt;
console.log("Number(new Date()).toString():",Number(new Date()).toString())
console.log("b(10 * a()):",b(10 * a()))
return Number(new Date()).toString() + b(10 * a()) + b(10 * a()) + b(10 * a());
}
//判断是否是微信
var is_weixin = (function () { //判断微信UA
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == "micromessenger") {
return true;
} else {
return false;
}
})();
//判断移动端还是电脑端
var isMobile = (function () {
if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
return true;
}
else {
return false//pc端
}
// return (/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase()));
})();
/*获取上个月的月份*/
function getUpMonth(dateString){
dateString=dateString || "";
var date = dateString==""?new Date():new Date(dateString);
var year = date.getFullYear();
var month = date.getMonth();
if(month == 0){
year--;
month = 12;
}
return year+"-"+(month < 10 ? "0"+month : month);
}
//调用state时显示html react
function createMarkup(str) {
return { __html: str };
}
/* ----------------- 判断字符串长度 (汉字为两个字符) ----------------- */
function strlen(str) {
var len = 0;
for (var i = 0; i < str.length; i++) {
var c = str.charCodeAt(i);
//单字节加1
if ((c >= 0x0001 && c <= 0x007e) || (0xff60 <= c && c <= 0xff9f)) {
len++;
}
else {
len += 2;
}
}
//return this.replace(/[^\x00-\xff]/g, "**").length; 另一种方法
return len;
}
/* 获取n天以前 默认7天*/
function getYestoday(str,date) {
str=str || 7;
date=date || "";
var d =date==""?new Date():new Date(date);
var beforday=str*1000;
var yesterday_milliseconds = d.getTime() - beforday * 60 * 60 * 24;
var yesterday = new Date();
yesterday.setTime(yesterday_milliseconds);
var strYear = yesterday.getFullYear();
var strDay = yesterday.getDate();
var strMonth = yesterday.getMonth() + 1;
var datastr = strYear + "-" + (strMonth < 10 ? '0' + strMonth : strMonth) + "-" + (strDay < 10 ? '0' + strDay : strDay);
return datastr;
}
/* 获取n天以后 默认7天*/
function getLasttoday(str,date) {
str=str || 7;
date=date || "";
var d =date==""?new Date():new Date(date);
var beforday=str*1000;
var yesterday_milliseconds = d.getTime() + beforday * 60 * 60 * 24;
var yesterday = new Date();
yesterday.setTime(yesterday_milliseconds);
var strYear = yesterday.getFullYear();
var strDay = yesterday.getDate();
var strMonth = yesterday.getMonth() + 1;
var datastr = strYear + "-" + (strMonth < 10 ? '0' + strMonth : strMonth) + "-" + (strDay < 10 ? '0' + strDay : strDay);
return datastr;
}
/* 获取图片真实宽高 */
var getrealImg=function(src){
var img = new Image();
img.src = src;
var kuan;
var gao;
if(img.complete) {
kuan=img.width;
gao=img.height;
}else{
img.onload = function () {
kuan=img.width;
gao=img.height;
img.onload = null;
};
img.src = src;
};
return {
widths:kuan,
heights:gao,
}
};
//生成时间戳
function Timestamp() {
var a = Math.random, b = parseInt;
return Number(new Date()).toString() + b(10 * a()) + b(10 * a()) + b(10 * a());
}
/* 比较日期 */
/**
* day 比较的日期
* compareDay : 被比较的日期 默认为当天
* 返回三个结果 after:大于当前日期 (当天之后); today 等于当前日期(当天);before:小于等于当前日期(当天之前)
*/
var compareDay=function(day,compareDay){
day=day || "";
compareDay=compareDay || "";
if(day=="") return "";
day=new Date(day).toLocaleDateString();
var currentDay=compareDay==""?new Date().toLocaleDateString():new Date(compareDay).toLocaleDateString();
var currdatetime=compareDay==""?currentDay:compareDay;
var isbefore="";
if (Date.parse(currdatetime) < Date.parse(day)) { //大于当前日期
isbefore="after";
}
if (Date.parse(currdatetime) == Date.parse(day)) { //等于当前日期
isbefore="today";
}
//小于等于当前日期
if (Date.parse(currdatetime) > Date.parse(day)) {
isbefore="before";
}
return isbefore;
}
//格式化日期 DateFormat('yyyy-MM-dd hh:mm:ss:SS 星期w 第q季度') w 星期 小写为数字 大写为中文
function DateFormat(format,date) {
date=date?new Date(date):new Date();
format=format || "yyyy-MM-dd";
var Week = ['日', '一', '二', '三', '四', '五', '六'];
var o = {
"y+": date.getYear(), //year
"M+": date.getMonth() + 1, //month
"d+": date.getDate(), //day
"h+": date.getHours(), //hour
"H+": date.getHours(), //hour
"m+": date.getMinutes(), //minute
"s+": date.getSeconds(), //second
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
"S": date.getMilliseconds(), //millisecond
"w": date.getDay(),
"W": Week[date.getDay()]
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
/* -------- 获取几周 几天前 几小时前 几分钟前 刚刚等七个状态 --------------*/
function getDateDiff(dateTimeStamp){
var minute = 1000*60;
var hour = minute*60;
var day = hour*24;
var halfmonth = day*15;
var month = day*30;
var now = new Date().getTime();
var diffValue = now - new Date(dateTimeStamp);
if(diffValue < 0 ){
conosle.log('结束日期不能小于开始日期');
}
var monthC = diffValue/month;
var weekC = diffValue/(7*day);
var dayC= diffValue/day;
var hourC = diffValue/hour;
var minC = diffValue/minute;
// 7个显示阶段
if(monthC > 12){// 大于12个月显示年-月-日 时:分
return DateFormat('yyyy-MM-dd hh:mm:ss',dateTimeStamp);
}else if(monthC >= 1){// 一年以内显示 几个月前
return parseInt(monthC) + '个月前';
}else if(weekC >= 1){// 几周前
return parseInt(weekC) + '周前';
}else if(dayC >= 1){// 几天前
return parseInt(dayC) + '天前';
}else if(hourC >= 1){// 几小时前
return parseInt(hourC) + '个小时前';
}else if(minC >= 1){// 几分钟前
return parseInt(minC) + '分钟前';
}else{// 刚刚
return '刚刚';
}
}
/* 加载外部js */
function addjs(url,box){
box=box || "";
var script = document.createElement("script");
script.src = url;
script.charset="utf-8";
script.type = "text/javascript";
box==""?document.body.appendChild(script):$(box).append(script);
}
/* js中加载css */
function addCss(cssCode,box){
box=box || "";
var eStyle = document.createElement ('style');
eStyle.innerHTML = cssCode;
box==""?document.querySelector ('head').appendChild (eStyle):$(box).querySelector ('head').appendChild (eStyle);
//document.querySelector ('head').appendChild (eStyle);
}
/**
*
* 数组内删除对象
* 使用:
* var somearray = ["mon", "tue", "wed", "thur"]
* somearray.removeByValue("tue");
* */
var removeByValue = function(arrys,val) {
for(var i=0; i<arrys.length; i++) {
if(arrys[i] == val) {
arrys.splice(i, 1);
break;
}
}
return arrys
}
/*获取参数总和*/
function getSum(values) {
var sum = 0;
for (var val of values) {
sum += val;
}
return sum;
}
// jquery判断对象是否获得焦点
function isFocus(str){
var isFocus=$(str).is(":focus");
return isFocus; //true :获得焦点 false:未获得焦点
}
/* 截取字符串,多出的显示省略号 */
var cutstr = function (strings, len) {
var restr = strings;
var wlength = strings.replace(/[^\x00-\xff]/g, "**").length;
if (wlength > len) {
for (var k = len / 2; k < strings.length; k++) {
if (strings.substr(0, k).replace(/[^\x00-\xff]/g, "**").length >= len) {
restr = strings.substr(0, k) + "...";
break;
}
}
}
return restr;
}
//替换全部
var replaceAll = function (obj,s1, s2) {
return obj.replace(new RegExp(s1, "gm"), s2)
}
//字符串去空格
var trim = function (obj) {
return obj.replace(/(^\s*)|(\s*$)/g, "");
}
var trimAll = function (obj) {
return obj.replace(/\s+/g, "");
}
var lTrim = function (obj) {
return obj.replace(/(^\s*)/g, "");
}
var rTrim = function (obj) {
return obj.replace(/(\s*$)/g, "");
}
//判断是否以某个字符串开头
var startWith = function (obj,s) {
return obj.indexOf(s) == 0
}
//判断是否以某个字符串结束
var endWith = function (obj,s) {
var d = obj.length - s.length;
return (d >= 0 && obj.lastIndexOf(s) == d)
}
//删除数组中存在重复的元素
function getUnique(someArray) {
tempArray = someArray.slice(0); //复制数组到临时数组
for (var i = 0; i < tempArray.length; i++) {
for (var j = i + 1; j < tempArray.length;) {
if (tempArray[j] == tempArray[i])
//后面的元素若和待比较的相同,则删除并计数;
//删除后,后面的元素会自动提前,所以指针j不移动
{
tempArray.splice(j, 1);
}
else {
j++;
}
//不同,则指针移动
}
}
return tempArray;
}
//判断数组中是否存在重复的元素
function confirmRepeat(someArray) {
let tempArray = someArray.slice(0); //复制数组到临时数组
for (var i = 0; i < tempArray.length; i++) {
for (var j = i + 1; j < tempArray.length;) {
if (tempArray[j] == tempArray[i])
//后面的元素若和待比较的相同,则删除并计数;
//删除后,后面的元素会自动提前,所以指针j不移动
{
return true;
}
else {
j++;
}
//不同,则指针移动
}
}
return false;
}
//判断某个值是否在数组中
var in_array = function (obj,e) {
for (i = 0; i < obj.length; i++) {
if (obj[i] == e)
return true;
}
return false;
}
//判断某个值在数组中的位置
var indexOf = function (obj,e) {
for (i = 0; i < obj.length; i++) {
if (obj[i] == e)
return i;
}
return -1;
}
//转义html标签
function HtmlEncode(text) {
return text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>')
}
//跨浏览器绑定事件
function addEventSamp(obj, evt, fn) {
if (!oTarget) { return; }
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
} else if (obj.attachEvent) {
obj.attachEvent('on' + evt, fn);
} else {
oTarget["on" + sEvtType] = fn;
}
}
//跨浏览器删除事件
function delEvt(obj, evt, fn) {
if (!obj) { return; }
if (obj.addEventListener) {
obj.addEventListener(evt, fn, false);
} else if (oTarget.attachEvent) {
obj.attachEvent("on" + evt, fn);
} else {
obj["on" + evt] = fn;
}
}
//完美判断是否为网址
function IsURL(strUrl) {
var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i
if (regular.test(strUrl)) {
return true;
} else {
return false;
}
}
//获取页面高度
function getPageHeight() {
var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement;
return Math.max(f.scrollHeight, a.scrollHeight, d.clientHeight);
}
//获取页面宽度
function getPageWidth() {
var g = document, a = g.body, f = g.documentElement, d = g.compatMode == "BackCompat" ? a : g.documentElement;
return Math.max(f.scrollWidth, a.scrollWidth, d.clientWidth);
}
//获取页面可视宽度
function getPageViewWidth() {
var d = document, a = d.compatMode == "BackCompat"
? d.body
: d.documentElement;
return a.clientWidth;
}
//获取页面可视高度
function getPageViewHeight() {
var d = document, a = d.compatMode == "BackCompat"
? d.body
: d.documentElement;
return a.clientHeight;
}
//获取页面scrollLeft
function getPageScrollLeft() {
var a = document;
return a.documentElement.scrollLeft || a.body.scrollLeft;
}
//获取页面scrollTop
function getPageScrollTop() {
var a = document;
return a.documentElement.scrollTop || a.body.scrollTop;
}
//获取窗体可见范围的宽与高
function getViewSize() {
var de = document.documentElement;
var db = document.body;
var viewW = de.clientWidth == 0 ? db.clientWidth : de.clientWidth;
var viewH = de.clientHeight == 0 ? db.clientHeight : de.clientHeight;
return Array(viewW, viewH);
}
//获取网页被卷去的位置
function getScrollXY() {
return document.body.scrollTop ? {
x: document.body.scrollLeft,
y: document.body.scrollTop
} : {
x: document.documentElement.scrollLeft,
y: document.documentElement.scrollTop
}
}
//匹配国内电话号码(0511-4405222 或 021-87888822)
function istell(str) {
var result = str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
if (result == null) return false;
return true;
}
//匹配身份证(15位或18位)
function isidcard(str) {
var result = str.match(/\d{15}|\d{18}/);
if (result == null) return false;
return true;
}
//移动电话
function checkMobile(str) {
if (!(/^1[3|5|8][0-9]\d{4,8}$/.test(str))) {
return false;
}
return true;
}
// 判断输入是否是一个由 0-9 / A-Z / a-z 组成的字符串
function isalphanumber(str) {
var result = str.match(/^[a-zA-Z0-9]+$/);
if (result == null) return false;
return true;
}
// 判断输入是否是有效的电子邮件
function isemail(str) {
var result = str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
if (result == null) return false;
return true;
}
/** 复制到剪贴板 elementId:要复制元素的id*/
function copyToClipboard(elementId) {
// 创建元素用于复制
var aux = document.createElement("input");
// 获取复制内容
var content = document.getElementById(elementId).innerHTML || document.getElementById(elementId).value;
// 设置元素内容
aux.setAttribute("value", content);
// 将元素插入页面进行调用
document.body.appendChild(aux);
// 复制内容
aux.select();
// 将内容复制到剪贴板
document.execCommand("copy");
// 删除创建元素
document.body.removeChild(aux);
alert("复制成功");
}
/**
* 大小写转换
* type: upper:转成大写, lower:转换成小写
*/
function toCase(text,type){
type=type || "lower";
var texts=type=="upper"?text.toUpperCase():text.toLowerCase ();
return texts
}
/* 银行卡验证 */
function bankcheck(values,callBack){
callBack=callBack?callBack:function(){};
// var e=window.event||event; //消除浏览器差异
// var values=e.target.value;
if (values == "") return;
var account = new String (values);
account = account.substring(0,22); /*帐号的总数, 包括空格在内 */
if (account.match (".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}") == null){
/* 对照格式 */
if (account.match (".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}|" + ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}|" +
".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}|" + ".[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{7}") == null){
var accountNumeric = accountChar = "", i;
for (i=0;i<account.length;i++){
accountChar = account.substr (i,1);
if (!isNaN (accountChar) && (accountChar != " ")) accountNumeric = accountNumeric + accountChar;
}
account = "";
for (i=0;i<accountNumeric.length;i++){ /* 可将以下空格改为-,效果也不错 */
if (i == 4) account = account + " "; /* 帐号第四位数后加空格 */
if (i == 8) account = account + " "; /* 帐号第八位数后加空格 */
if (i == 12) account = account + " ";/* 帐号第十二位后数后加空格 */
account = account + accountNumeric.substr (i,1)
}
}
}else{
account = " " + account.substring (1,5) + " " + account.substring (6,10) + " " + account.substring (14,18) + "-" + account.substring(18,25);
}
if (account != values){
callBack(account)
}
// if (account != values) e.target.value= account;
}
/** 禁止非数字输入 */
function checkNaN(event,params){
var e=window.event||event; //消除浏览器差异
var code = e.keyCode||e.which; //8 为backsppace键
var values=e.target.value;
var defaultParams = {
type:"1",
isalert:false,
tle:"",
ischeckNull:false,
callback:function(){},
success:function(){},
}
var settings = {};
jQuery.extend(settings,defaultParams,params);
var type=settings.type;
var isalert=settings.isalert;
var tle=settings.tle;
var ischeckNull=settings.ischeckNull;
var callback=settings.callback;
var success=settings.success
var alertText=tle==""?(type=="2"?"只能输入正数字":"只能输入数字"):tle; //提示的文字
if(!e.target.value || e.target.value==""){
ischeckNull?success(event):"";
// e.target.value=""
}else{
var reg=/^([1-9]\d*|[0]{1,1})$/ //isNaN()
checkKey=type=="2"?!reg.exec(e.target.value):isNaN(e.target.value)
if(code!=8 && checkKey){
e.target.value=(values.substring(0,(values.length-1))).replace(/[^\d.]/g,'');
isalert?layer.msg(alertText,{icon:5}):"";
callback(alertText);
e.returnValue = false;
}else{
success(event);
}
}
}
/**图片上传 */
function imgChange(event,callback){
callback=callback?callback:function(){};
var e=window.event|| event
var $this=$(e.currentTarget);
var fileId=$this.attr("id");
var ings=$this.parents(".uploads").find(".upload-img").html()
var imgType=[".jpg",".jpeg",".png",".gif"]
var imgArry=[];
var file = document.getElementById(fileId);
if(window.FileReader){//chrome,firefox7+,opera,IE10+
var myfilesObj=e.currentTarget.files //e.currentTarget.files[0]
for(var i in myfilesObj){
if(!isNaN(i)){
var myfiles=myfilesObj[i];
var imgObj={};
imgObj.name = myfiles.name;
imgObj.size = myfiles.size; //读取选中文件的大小
imgObj.type = myfiles.type;
imgObj.fileType=(myfiles.type).indexOf("image")>=0?"image":"files";
oFReader = new FileReader();
oFReader.readAsDataURL(file.files[i]);
oFReader.onload = function (oFREvent) {
imgObj.src = oFREvent.target.result;
imgArry.push(imgObj)
uploadShowimg($this,imgArry)
callback(imgArry)
};
}
}
}
else if (document.all) {//IE9-//IE使用滤镜,实际测试IE6设置src为物理路径发布网站通过http协议访问时还是没有办法加载图片
file.select();
file.blur();//要添加这句,要不会报拒绝访问错误(IE9或者用ie9+默认ie8-都会报错,实际的IE8-不会报错)
var reallocalpath = document.selection.createRange().text//IE下获取实际的本地文件路径
//if (window.ie6) pic.src = reallocalpath; //IE6浏览器设置img的src为本地路径可以直接显示图片
//else { //非IE6版本的IE由于安全问题直接设置img的src无法显示本地图片,但是可以通过滤镜来实现,IE10浏览器不支持滤镜,需要用FileReader来实现,所以注意判断FileReader先
imgObj.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='image',src=\"" + reallocalpath + "\")";
imgObj.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==';//设置img的src为base64编码的透明图片,要不会显示红xx
uploadShowimg($this,imgArry)
callback(imgObj)
// }
}
else if (file.files) {//firefox6-
if (file.files.item(0)) {
url = file.files.item(0).getAsDataURL();
imgObj.src = url;
uploadShowimg($this,imgArry)
callback(imgObj)
}
}
}
jQuery.fn.extend({
})