1
var Tool = Tool || {};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 去字符串空格
* @str String 所要检测的字符串
* @type String 类型
* @returns bolean
*/
Tool.trim = function(str, type){
switch(type){
case 'l_trim' : {
return str.replace(/(^\s*)/g, '');
};
case 'r_trim' : {
return str.replace(/(\s*$)/g, '');
};
default : {
return str.replace(/(^\s*)|(\s*$)/g, '');
};
}
}
1
2
3
4
5
6
7
/**
* 判断开始字符是否是XX
*/
App.startWith = function(source, str){
var reg = new RegExp("^" + str);
return reg.test(source);
}
1
2
3
4
5
6
7
/**
* 判断结束字符是否是XX
*/
App.endWith = function(source, str) {
var reg = new RegExp(str + "$");
return reg.test(source);
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* 将form表单元素的值序列化成对象
* @example App.serializeForm($('#formId'))
* @requires jQuery
* @returns object
*/
App.serializeForm = function(form) {
var o = {};
$.each(form.serializeArray(), function(index) {
this['value'] = App.trim(this['value']);
if (this['value'] != undefined && this['value'].length > 0) {// 如果表单项的值非空,才进行序列化操作
if (o[this['name']]) {
o[this['name']] = o[this['name']] + "," + this['value'];
} else {
o[this['name']] = this['value'];
}
}
});
return o;
};
1
2
3
4
5
6
7
8
9
10
11
/**
* 为json数据映射入表单,要求表单name对应json的每个name
*/
App.setForm = function(form, data) {
$.each(form.serializeArray(), function(index) {
var name = this['name'];
var input = $(':input[name="'+ name +'"]');
if(input)
input.val(data[name]);
});
};
1
2
3
4
5
6
7
8
9
10
11
/**
* 增加formatString功能
* @example App.formatString('字符串{0}字符串{1}字符串','第一个变量','第二个变量');
* @returns 格式化后的字符串
*/
App.formatString = function(str) {
for ( var i = 0; i < arguments.length - 1; i++) {
str = str.replace("{" + i + "}", arguments[i + 1]);
}
return str;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 接收一个以逗号分割的字符串,返回List,list里每一项都是一个字符串
* @returns list
*/
App.stringToList = function(value) {
if (value != undefined && value != '') {
var values = [];
var t = value.split(',');
for ( var i = 0; i < t.length; i++) {
values.push('' + t[i]);
}
return values;
} else {
return [];
}
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
* JSON对象转换成String
* @param o
* @returns
*/
App.jsonToString = function(o) {
var r = [];
if (typeof o == "string")
return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";
if (typeof o == "object") {
if (!o.sort) {
for ( var i in o)
r.push(i + ":" + App.jsonToString(o[i]));
if (!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {
r.push("toString:" + o.toString.toString());
}
r = "{" + r.join() + "}";
} else {
for ( var i = 0; i < o.length; i++)
r.push(App.jsonToString(o[i]));
r = "[" + r.join() + "]";
}
return r;
}
return o.toString();
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
* cookie
* @param key
* @param value
* @param options
* @returns
*/
App.cookie = function(key, value, options) {
if (arguments.length > 1 && (value === null || typeof value !== "object")) {
options = $.extend({}, options);
if (value === null) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
return (document.cookie = [ encodeURIComponent(key), '=', options.raw ? String(value) : encodeURIComponent(String(value)), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join(''));
}
options = value || {};
var result, decode = options.raw ? function(s) {
return s;
} : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
1
2
3
4
5
6
7
8
9
10
/**
* 判断IE浏览器类型,向后兼容。如果是IE9,返回9,如果是IE8,返回8;非IE,返回false
* @param o
* @returns
*/
App.IE = (function() {
var v = 3, div = document.createElement('div'), all = div.getElementsByTagName('i');
while (div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',all[0]);
return v > 4 ? v : false ;
}());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
* 解析URL攜帶的?之後的參數,轉換為對象,返回之
* @param location
* @returns
*/
App.getURLparams = function(){
var o = {};
if(location.search){
var search_params = location.search.substr(1).split('&');
if(search_params){
$.each(search_params, function(i){
o[this.split('=')[0]] = decodeURIComponent(this.split('=')[1]);
});
}
}
return o;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
* 解析string 成为object
* @param str, index
* @returns
*/
App.extractStringtoObject = function(str, index, sym){
var o = {};
if(index != null){
var i = str.indexOf('=', index);
o[str.substr(0, i)] = str.substr(i + 1);
}else{
if(sym == null)
sym = '$';
var search_params = str.split(sym);
if(search_params){
$.each(search_params, function(i){
o[this.split('=')[0]] = this.split('=')[1];
});
}
}
return o;
};
1
2
3
4
5
6
7
8
9
10
11
/**
* 获取URL的contextPath
* @param
* @returns
*/
App.contextPath = function(){
var origin = location.origin;
var pathname = location.pathname;
var projectname = pathname.substr(0, pathname.indexOf('/', 1));
return origin + projectname;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/** 
生成指定位数的随机整数
**/
App.getRandomNum = function(count){
var arr = new Array;
var reNum = "";
for(var i=0;i<count;i++){
arr[i] = parseInt(Math.random()*10);
reNum += String(arr[i]);
}
return reNum;
}
App.random = function(min,max){
return Math.floor(min+Math.random()*(max-min));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/** 
* 给URL追加参数
* @param {} url
* @param {} parameter 参数名
* @param {} value 参数值
*/
App.urlAddParmert = function(url,parameter,value){
var buf = new StringBuffer();
if(!isEmpty(url)){
buf.append(url);
if(url.indexOf("?") > -1){ //已经有参数
buf.append("&");
}else{
buf.append("?");
}
buf.append(parameter);
buf.append("=");
buf.append(value);
}
return buf.toString();
}
1
2
3
4
5
6
7
8
9
10
/** 
* 得到文件的扩展名
* @param {} filename
*/
App.getFileExt = function(filename){
var d=/\.[^\.]+$/.exec(filename);
var ext = new String(d);
var s = ext.toLowerCase();
return s;
}