154 lines
5.4 KiB
JavaScript
154 lines
5.4 KiB
JavaScript
|
|
/**
|
|||
|
|
* amWiki Web端·工具集
|
|||
|
|
* @author Tevin
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
;
|
|||
|
|
(function (win) {
|
|||
|
|
|
|||
|
|
'use strict';
|
|||
|
|
|
|||
|
|
return win.tools = {
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取url参数
|
|||
|
|
* @param {String} name
|
|||
|
|
* @returns {String|Null} - 获取的参数
|
|||
|
|
*/
|
|||
|
|
getURLParameter: function (name) {
|
|||
|
|
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
|
|||
|
|
var r = window.location.search.substr(1).match(reg);
|
|||
|
|
if (r != null) {
|
|||
|
|
return r[2];
|
|||
|
|
} else {
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 转换字符中每个汉字为两个字符
|
|||
|
|
* @param {String} str - 要编码的字符串
|
|||
|
|
* @param {String} [mod] - 编码模式选择,可选,normal(默认)一个汉字对应两位字符,short一个汉字对应一位字符
|
|||
|
|
* @returns {String} 编码后的字符串
|
|||
|
|
*/
|
|||
|
|
simString: function (str, mod) {
|
|||
|
|
mod = mod == 'short'; //短字符串
|
|||
|
|
var str2 = '';
|
|||
|
|
var s = '';
|
|||
|
|
var encodeURI = win.encodeURI;
|
|||
|
|
for (var i = 0; i < str.length; i++) {
|
|||
|
|
s = str.substr(i, 1);
|
|||
|
|
if (/[\u4e00-\u9fa5]/.test(s)) {
|
|||
|
|
encodeURI(s).split('%').forEach(function (item) {
|
|||
|
|
if (item == '') {
|
|||
|
|
s = [];
|
|||
|
|
} else {
|
|||
|
|
s.push(parseInt('0x' + item));
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
if (mod) {
|
|||
|
|
str2 += (s[0] + s[1] + s[2]).toString(16).substr(-1, 1);
|
|||
|
|
} else {
|
|||
|
|
str2 += (s[0] + s[1] + s[2]).toString(16).substr(-2, 2);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
str2 += s;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return str2;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* json格式化
|
|||
|
|
* @param {String} str - 需要格式化的json字符串
|
|||
|
|
* @returns {String} 格式化后的json字符串
|
|||
|
|
*/
|
|||
|
|
formatJson: function (str) {
|
|||
|
|
var json = decodeURI(str.replace(/%([^0-9A-Z]{0,2})/g, '%25$1'));
|
|||
|
|
var reg = null,
|
|||
|
|
formatted = '',
|
|||
|
|
pad = 0,
|
|||
|
|
PADDING = ' ';
|
|||
|
|
var options = {};
|
|||
|
|
// remove newline where '{' or '[' follows ':'
|
|||
|
|
options.newlineAfterColonIfBeforeBraceOrBracket = options.newlineAfterColonIfBeforeBraceOrBracket === true;
|
|||
|
|
// use a space after a colon
|
|||
|
|
options.spaceAfterColon = options.spaceAfterColon !== false;
|
|||
|
|
// begin formatting...
|
|||
|
|
if (typeof json !== 'string') {
|
|||
|
|
json = JSON.stringify(json);
|
|||
|
|
} else {
|
|||
|
|
json = JSON.parse(json);
|
|||
|
|
json = JSON.stringify(json);
|
|||
|
|
}
|
|||
|
|
// add newline before and after curly braces
|
|||
|
|
reg = /([\{\}])/g;
|
|||
|
|
json = json.replace(reg, '\r\n$1\r\n');
|
|||
|
|
// add newline before and after square brackets
|
|||
|
|
reg = /([\[\]])/g;
|
|||
|
|
json = json.replace(reg, '\r\n$1\r\n');
|
|||
|
|
// add newline after comma
|
|||
|
|
reg = /(\,)/g;
|
|||
|
|
json = json.replace(reg, '$1\r\n');
|
|||
|
|
// remove multiple newlines
|
|||
|
|
reg = /(\r\n\r\n)/g;
|
|||
|
|
json = json.replace(reg, '\r\n');
|
|||
|
|
// remove newlines before commas
|
|||
|
|
reg = /\r\n\,/g;
|
|||
|
|
json = json.replace(reg, ',');
|
|||
|
|
// optional formatting...
|
|||
|
|
if (!options.newlineAfterColonIfBeforeBraceOrBracket) {
|
|||
|
|
reg = /\:\r\n\{/g;
|
|||
|
|
json = json.replace(reg, ':{');
|
|||
|
|
reg = /\:\r\n\[/g;
|
|||
|
|
json = json.replace(reg, ':[');
|
|||
|
|
}
|
|||
|
|
if (options.spaceAfterColon) {
|
|||
|
|
reg = /"\s*\:/g;
|
|||
|
|
json = json.replace(reg, '": ');
|
|||
|
|
}
|
|||
|
|
$.each(json.split('\r\n'), function (index, node) {
|
|||
|
|
var i = 0,
|
|||
|
|
indent = 0,
|
|||
|
|
padding = '';
|
|||
|
|
if (node.match(/\{$/) || node.match(/\[$/)) {
|
|||
|
|
indent = 1;
|
|||
|
|
} else if (node.match(/\}/) || node.match(/\]/)) {
|
|||
|
|
if (pad !== 0) {
|
|||
|
|
pad -= 1;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
indent = 0;
|
|||
|
|
}
|
|||
|
|
for (i = 0; i < pad; i++) {
|
|||
|
|
padding += PADDING;
|
|||
|
|
}
|
|||
|
|
formatted += padding + node + '\r\n';
|
|||
|
|
pad += indent;
|
|||
|
|
});
|
|||
|
|
return formatted;
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 时间戳格式化为日期时间
|
|||
|
|
* @param {Number} timestamp - 时间戳
|
|||
|
|
* @returns {String} 日期时间
|
|||
|
|
*/
|
|||
|
|
formatTime: function (timestamp) {
|
|||
|
|
var time = new Date(timestamp);
|
|||
|
|
var year = time.getFullYear() + '';
|
|||
|
|
var month = time.getMonth() + 1;
|
|||
|
|
month = month <= 9 ? '0' + month : month;
|
|||
|
|
var date = time.getDate();
|
|||
|
|
date = date <= 9 ? '0' + date : date;
|
|||
|
|
var hour = time.getHours();
|
|||
|
|
hour = hour <= 9 ? '0' + hour : hour;
|
|||
|
|
var minute = time.getMinutes();
|
|||
|
|
minute = minute <= 9 ? '0' + minute : minute;
|
|||
|
|
var second = time.getSeconds();
|
|||
|
|
second = second <= 9 ? '0' + second : second;
|
|||
|
|
return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
})(window);
|