|
|
|
|
function checkPwdStrong(pwd) {
|
|
|
|
|
var c0 = pwd.length >= 6;
|
|
|
|
|
var c1 = /[a-z]+/.test(pwd);
|
|
|
|
|
var c2 = /[A-Z]+/.test(pwd);
|
|
|
|
|
var c3 = /[0-9]+/.test(pwd);
|
|
|
|
|
if (c0 && c1 && c2 && c3) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$.fn.serializeObject = function () {
|
|
|
|
|
var o = {};
|
|
|
|
|
var a = this.serializeArray();
|
|
|
|
|
$.each(a, function () {
|
|
|
|
|
if (o[this.name]) {
|
|
|
|
|
if (!o[this.name].push) {
|
|
|
|
|
o[this.name] = [o[this.name]];
|
|
|
|
|
}
|
|
|
|
|
o[this.name].push(this.value || '');
|
|
|
|
|
} else {
|
|
|
|
|
o[this.name] = this.value || '';
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
return o;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.fn.toJson = function () {
|
|
|
|
|
var self = this,
|
|
|
|
|
json = {},
|
|
|
|
|
push_counters = {},
|
|
|
|
|
patterns = {
|
|
|
|
|
"validate": /^[a-zA-Z][a-zA-Z0-9_]*(?:\[(?:\d*|[a-zA-Z0-9_]+)\])*$/,
|
|
|
|
|
"key": /[a-zA-Z0-9_]+|(?=\[\])/g,
|
|
|
|
|
"push": /^$/,
|
|
|
|
|
"fixed": /^\d+$/,
|
|
|
|
|
"named": /^[a-zA-Z0-9_]+$/
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.build = function (base, key, value) {
|
|
|
|
|
base[key] = value;
|
|
|
|
|
return base;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
this.push_counter = function (key) {
|
|
|
|
|
if (push_counters[key] === undefined) {
|
|
|
|
|
push_counters[key] = 0;
|
|
|
|
|
}
|
|
|
|
|
return push_counters[key]++;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
$.each($(this).serializeArray(), function () {
|
|
|
|
|
// skip invalid keys
|
|
|
|
|
if (!patterns.validate.test(this.name)) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var k,
|
|
|
|
|
keys = this.name.match(patterns.key),
|
|
|
|
|
merge = this.value,
|
|
|
|
|
reverse_key = this.name;
|
|
|
|
|
|
|
|
|
|
while ((k = keys.pop()) !== undefined) {
|
|
|
|
|
// adjust reverse_key
|
|
|
|
|
reverse_key = reverse_key.replace(new RegExp("\\[" + k + "\\]$"), '');
|
|
|
|
|
|
|
|
|
|
// push
|
|
|
|
|
if (k.match(patterns.push)) {
|
|
|
|
|
merge = self.build([], self.push_counter(reverse_key), merge);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fixed
|
|
|
|
|
else if (k.match(patterns.fixed)) {
|
|
|
|
|
merge = self.build([], k, merge);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// named
|
|
|
|
|
else if (k.match(patterns.named)) {
|
|
|
|
|
merge = self.build({}, k, merge);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
json = $.extend(true, json, merge);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return json;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$.fn.loadData = function (obj) {
|
|
|
|
|
var key, value, tagName, type, arr;
|
|
|
|
|
|
|
|
|
|
this.resetForm();
|
|
|
|
|
|
|
|
|
|
for (var x in obj) {
|
|
|
|
|
if (obj.hasOwnProperty(x)) {
|
|
|
|
|
key = x;
|
|
|
|
|
value = obj[x];
|
|
|
|
|
|
|
|
|
|
this.find("[name='" + key + "'],[name='" + key + "[]']").each(function () {
|
|
|
|
|
tagName = $(this)[0].tagName.toUpperCase();
|
|
|
|
|
type = $(this).attr('type');
|
|
|
|
|
if (tagName == 'INPUT') {
|
|
|
|
|
if (type == 'radio') {
|
|
|
|
|
if ($(this).val() == value) {
|
|
|
|
|
$(this).attr('checked', true);
|
|
|
|
|
}
|
|
|
|
|
} else if (type == 'checkbox') {
|
|
|
|
|
if (value) {
|
|
|
|
|
$(this).prop('checked', true);
|
|
|
|
|
} else {
|
|
|
|
|
$(this).prop('checked', false);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$(this).val(value);
|
|
|
|
|
}
|
|
|
|
|
} else if (tagName == 'SELECT' || tagName == 'TEXTAREA') {
|
|
|
|
|
$(this).val(value);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$(function () {
|
|
|
|
|
$(document).on('click', 'a.tabs', function () {
|
|
|
|
|
var url = $(this).data('url');
|
|
|
|
|
if (url != undefined && url.length > 0) {
|
|
|
|
|
var title = $(this).data('title');
|
|
|
|
|
if (title == undefined) {
|
|
|
|
|
title = "New Page";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//debugger;
|
|
|
|
|
if (url.indexOf('?') > -1) {
|
|
|
|
|
url += "&rnd=" + new Date()
|
|
|
|
|
} else {
|
|
|
|
|
url += "?rnd=" + new Date()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
parent.addMenuTab(url, title, 0)
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
function formatTextarea(len, id) {
|
|
|
|
|
var textareaFiled = $("#" + id);
|
|
|
|
|
var value = textareaFiled.val();
|
|
|
|
|
//var textArr = value.match(/([\w]+[ ]*)|([^u4e00-u9fa5|\r|\n]+[ ]*)|([@|=|^|<|>]+[ ]*)/g);//匹配字母数字汉字及特殊字符{Array<string>}
|
|
|
|
|
var textArr = value.match(/.+[\n]*/g);//按行匹配
|
|
|
|
|
var subValue = "";
|
|
|
|
|
|
|
|
|
|
for (var j = 0; j < textArr.length; j++) {
|
|
|
|
|
var subArr = textArr[j].match(/[\w]+[ ]*[\n]*|[\d]+[ ]*[\n]*|[^\w\d]+[ ]*[\n]*/g);
|
|
|
|
|
var count = 0;
|
|
|
|
|
for (var i = 0; i < subArr.length; i++) {
|
|
|
|
|
count += subArr[i].replace(/\n/g, "").length;
|
|
|
|
|
while (count > len) {
|
|
|
|
|
subValue += "\n";
|
|
|
|
|
count = subArr[i].replace(/\n/g, "").length;
|
|
|
|
|
if (count > len) {
|
|
|
|
|
subValue += subArr[i].substring(0, len);
|
|
|
|
|
subValue += "\n";
|
|
|
|
|
subArr[i] = subArr[i].substring(len);
|
|
|
|
|
count = subArr[i].replace(/\n/g, "").length;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
subValue += subArr[i];
|
|
|
|
|
}
|
|
|
|
|
if (j + 1 < textArr.length)
|
|
|
|
|
subValue += "\n";
|
|
|
|
|
}
|
|
|
|
|
subValue = subValue.replace(/[\n]+/g, "\n");//多个换行变为一个换行
|
|
|
|
|
subValue = subValue.replace(/[ ]+[\n]+/g, '\n');//去除每行末尾空格
|
|
|
|
|
subValue = subValue.replace(/[ ]+$/g, '');//去除末行空格
|
|
|
|
|
textareaFiled.val(subValue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getWeekOfYear(str) {
|
|
|
|
|
let day = Date.parse(str);
|
|
|
|
|
//如果不是当年的第一天不是星期一,则该日所属周数为上一年的最后一周
|
|
|
|
|
day = new Date(day);
|
|
|
|
|
|
|
|
|
|
if (day.getDay() !== 1) {
|
|
|
|
|
day = day.getTime() - 24 * 60 * 60 * 1000
|
|
|
|
|
day = new Date(day);
|
|
|
|
|
}
|
|
|
|
|
day.setMonth(0);
|
|
|
|
|
day.setDate(1);
|
|
|
|
|
day.setHours(0);
|
|
|
|
|
day.setMinutes(0);
|
|
|
|
|
day.setSeconds(0);//到这里就得到该年的一月一日
|
|
|
|
|
|
|
|
|
|
let today = Date.parse(str);
|
|
|
|
|
today = new Date(today);
|
|
|
|
|
let todayWeek = today.getDay()
|
|
|
|
|
|
|
|
|
|
//计算日期是一年中的第几天
|
|
|
|
|
let rankDay = Math.ceil((today.getTime() - day.getTime()) / (1000 * 24 * 60 * 60))
|
|
|
|
|
let rankWeek = Math.ceil(rankDay / 7)
|
|
|
|
|
//rankWeek = rankWeek < 10 ? ("0" + rankWeek) : rankWeek
|
|
|
|
|
//let year = day.getFullYear().toString()
|
|
|
|
|
return rankWeek
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function copyToClipboard(txt) {
|
|
|
|
|
var x = window.scrollX
|
|
|
|
|
var y = window.scrollY
|
|
|
|
|
let transfer = document.createElement('input');
|
|
|
|
|
document.body.appendChild(transfer);
|
|
|
|
|
transfer.value = txt; // 这里表示想要复制的内容
|
|
|
|
|
transfer.focus();
|
|
|
|
|
transfer.select();
|
|
|
|
|
if (document.execCommand('copy')) {
|
|
|
|
|
document.execCommand('copy');
|
|
|
|
|
}
|
|
|
|
|
layer.msg('已复制')
|
|
|
|
|
document.body.removeChild(transfer);
|
|
|
|
|
window.scrollTo(x, y)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|