258 lines
8.4 KiB
JavaScript
258 lines
8.4 KiB
JavaScript
(function ($, document) {
|
||
(function ($) {
|
||
$.UrlParam = function (name) {
|
||
//宣告正規表達式
|
||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||
/*
|
||
* window.location.search 獲取URL ?之後的參數(包含問號)
|
||
* substr(1) 獲取第一個字以後的字串(就是去除掉?號)
|
||
* match(reg) 用正規表達式檢查是否符合要查詢的參數
|
||
*/
|
||
var r = window.location.search.substr(1).match(reg);
|
||
//如果取出的參數存在則取出參數的值否則回穿null
|
||
if (r != null) return unescape(r[2]); return null;
|
||
}
|
||
})(jQuery);
|
||
|
||
if ($.cookie) {
|
||
$.cookieKey = function (CookieName, KeyName, Value, Options) {
|
||
var reg = new RegExp("(?:([^=]+)=([^&]*)&?)", "ig"),
|
||
match = null,
|
||
matches = [];
|
||
var cookieVal = $.cookie(CookieName);
|
||
while (match = reg.exec(cookieVal)) {
|
||
if (KeyName.toLowerCase() == match[1].toLowerCase()) {
|
||
if (Value) { //we are updating, collect all values
|
||
matches.push([match[1], Value]);
|
||
}
|
||
else {
|
||
return match[2]; //we are getting, sub key found just return it
|
||
}
|
||
}
|
||
else if (Value) { //we are updating, collect all values
|
||
matches.push([match[1], match[2]]);
|
||
}
|
||
}
|
||
|
||
if (Value) { //we are updating, update values
|
||
updatedValue = "",
|
||
sep = "";
|
||
for (i = 0; i < matches; i++) {
|
||
updatedValue += sep + matches[i][0] + "=" + matches[i][1];
|
||
sep = "&"
|
||
}
|
||
$.cookie(CookieName, updatedValue, Options);
|
||
}
|
||
else return null;//we are getting, value not found
|
||
}
|
||
}
|
||
})(jQuery, document);
|
||
|
||
// 對Date的擴充套件,將 Date 轉化為指定格式的String
|
||
// 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個佔位符,
|
||
// 年(y)可以用 1-4 個佔位符,毫秒(S)只能用 1 個佔位符(是 1-3 位的數字)
|
||
// 例子:
|
||
// (new Date()).format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
|
||
// (new Date()).format("yyyy-M-d hⓜ️s.S") ==> 2006-7-2 8:9:4.18
|
||
Date.prototype.format = function (fmt) {
|
||
var o = {
|
||
"M+": this.getMonth() + 1, //月份
|
||
"d+": this.getDate(), //日
|
||
"h+": this.getHours(), //小時
|
||
"m+": this.getMinutes(), //分
|
||
"s+": this.getSeconds(), //秒
|
||
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
||
"S": this.getMilliseconds() //毫秒
|
||
};
|
||
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
||
for (var k in o)
|
||
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
|
||
return fmt;
|
||
}
|
||
|
||
Date.prototype.addSeconds = function (seconds) {
|
||
this.setSeconds(this.getSeconds() + seconds);
|
||
return this;
|
||
}
|
||
|
||
Date.prototype.addMinutes = function (minutes) {
|
||
this.setMinutes(this.getMinutes() + minutes);
|
||
return this;
|
||
}
|
||
|
||
Date.prototype.addHours = function (hours) {
|
||
this.setHours(this.getHours() + hours);
|
||
return this;
|
||
}
|
||
|
||
Date.prototype.addDays = function (days) {
|
||
this.setDate(this.getDate() + days);
|
||
return this;
|
||
}
|
||
|
||
Date.prototype.addMonths = function (months) {
|
||
this.setMonth(this.getMonth() + months);
|
||
return this;
|
||
}
|
||
|
||
Date.prototype.addYears = function (years) {
|
||
this.setFullYear(this.getFullYear() + years);
|
||
return this;
|
||
}
|
||
|
||
function diffSeconds(milliseconds) {
|
||
return Math.floor(milliseconds / 1000);
|
||
}
|
||
|
||
function diffMinutes(milliseconds) {
|
||
return Math.floor(milliseconds / 1000 / 60);
|
||
}
|
||
|
||
function diffHours(milliseconds) {
|
||
return Math.floor(milliseconds / 1000 / 60 / 60);
|
||
}
|
||
|
||
function diffDays(milliseconds) {
|
||
return Math.floor(milliseconds / 1000 / 60 / 60 / 24);
|
||
}
|
||
|
||
function padding(num, length) {
|
||
for (var len = (num + "").length; len < length; len = num.length) {
|
||
num = "0" + num;
|
||
}
|
||
return num;
|
||
}
|
||
|
||
function clearChildren(element) {
|
||
//for (var i = 0; i < element.childNodes.length; i++) {
|
||
// var e = element.childNodes[i];
|
||
// if (e.tagName) switch (e.tagName.toLowerCase()) {
|
||
// case 'input':
|
||
// switch (e.type) {
|
||
// case "radio":
|
||
// case "checkbox": break;
|
||
// case "button":
|
||
// case "submit":
|
||
// case "text": e.value = ''; break;
|
||
// case "image": break;
|
||
// default: if (e.type != "checkbox") { e.value = ''; }; break;
|
||
// }
|
||
// break;
|
||
// case 'select': e.selectedIndex = 0; break;
|
||
// case 'textarea': e.innerHTML = ''; break;
|
||
// default: clearChildren(e);
|
||
// }
|
||
//}
|
||
|
||
//$(element).children().find('textarea').each(function () {
|
||
// $(this).val('');
|
||
//});
|
||
|
||
//$(element).children().find('select').each(function () {
|
||
// $(this).prop('selectedIndex', 0);
|
||
//});
|
||
}
|
||
|
||
|
||
|
||
$(document).ready(function () {
|
||
$('.modal').on("hidden.bs.modal", function (e) {
|
||
clearChildren(this);
|
||
if ($('.modal:visible').length) {
|
||
$('.modal-backdrop').first().css('z-index', parseInt($('.modal:visible').last().css('z-index')) - 10);
|
||
$('body').addClass('modal-open');
|
||
}
|
||
|
||
|
||
}).on("show.bs.modal", function (e) {
|
||
if ($('.modal:visible').length) {
|
||
$('.modal-backdrop.in').first().css('z-index', parseInt($('.modal:visible').last().css('z-index')) + 10);
|
||
$(this).css('z-index', parseInt($('.modal-backdrop.in').first().css('z-index')) + 10);
|
||
}
|
||
});
|
||
|
||
(function ($) {
|
||
$.UrlParam = function (name) {
|
||
//宣告正規表達式
|
||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||
/*
|
||
* window.location.search 獲取URL ?之後的參數(包含問號)
|
||
* substr(1) 獲取第一個字以後的字串(就是去除掉?號)
|
||
* match(reg) 用正規表達式檢查是否符合要查詢的參數
|
||
*/
|
||
var r = window.location.search.substr(1).match(reg);
|
||
//如果取出的參數存在則取出參數的值否則回穿null
|
||
if (r != null) return unescape(r[2]); return null;
|
||
}
|
||
})(jQuery);
|
||
|
||
});
|
||
|
||
|
||
String.prototype.isDate = function () {
|
||
var p;
|
||
var re1 = /(\d{4})[年./-](\d{1,2})[月./-](\d{1,2})[日]?$/;
|
||
var re2 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{2})[年]?$/;
|
||
var re3 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{4})[年]?$/;
|
||
if (re1.test(this)) {
|
||
p = re1.exec(this);
|
||
return new Date(p[1], p[2], p[3]);
|
||
}
|
||
if (re2.test(this)) {
|
||
p = re2.exec(this);
|
||
return new Date(p[3], p[1], p[2]);
|
||
}
|
||
if (re3.test(this)) {
|
||
p = re3.exec(this);
|
||
return new Date(p[3], p[1], p[2]);
|
||
}
|
||
return "";
|
||
}
|
||
|
||
String.prototype.isDigit = function () {
|
||
var s = this.Trim();
|
||
return (s.replace(/\d/g, "").length == 0);
|
||
}
|
||
|
||
/*** 檢查是否由數字字母和下劃線組成 ***/
|
||
String.prototype.isAlpha = function () {
|
||
return (this.replace(/\w/g, "").length == 0);
|
||
}
|
||
|
||
/*** 檢查是否為數 ***/
|
||
String.prototype.isNumber = function () {
|
||
var s = this.Trim();
|
||
return (s.search(/^[+-]?[0-9.]*$/) >= 0);
|
||
}
|
||
|
||
/*** 返回字節數 ***/
|
||
String.prototype.lenb = function () {
|
||
return this.replace(/[^\x00-\xff]/g, "**").length;
|
||
}
|
||
|
||
/*** 檢查是否包含漢字 ***/
|
||
String.prototype.isInChinese = function () {
|
||
return (this.length != this.replace(/[^\x00-\xff]/g, "**").length);
|
||
}
|
||
|
||
/*** 刪除首尾空格 ***/
|
||
String.prototype.Trim = function () {
|
||
return this.replace(/(^\s*)|(\s*$)/g, "");
|
||
}
|
||
const apiUrl = '' /*** 有值的話需要斜線結尾喔 **/
|
||
|
||
/*** 簡單的email檢查 ***/
|
||
String.prototype.isEmail = function () {
|
||
var strr;
|
||
var mail = this;
|
||
var re = /(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
|
||
re.exec(mail);
|
||
if (RegExp.$3 != "" && RegExp.$3 != "." && RegExp.$2 != ".")
|
||
strr = RegExp.$1 + RegExp.$2 + RegExp.$3;
|
||
else
|
||
if (RegExp.$2 != "" && RegExp.$2 != ".")
|
||
strr = RegExp.$1 + RegExp.$2;
|
||
else
|
||
strr = RegExp.$1;
|
||
return (strr == mail);
|
||
} |