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); |