初始化提交
This commit is contained in:
154
common/wiki/amWiki/js/amWiki.tools.js
Normal file
154
common/wiki/amWiki/js/amWiki.tools.js
Normal file
@@ -0,0 +1,154 @@
|
||||
/**
|
||||
* 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);
|
||||
Reference in New Issue
Block a user