2008-05-05 23:33:45
源码
/**
* Copyright (c)2008 xiaosuo
*/
/* ******************************************************************* */
/* UTIL FUNCTIONS */
/* ******************************************************************* */
var Util = { 'VERSION':1.1 };
//获取id
function id(name) {
return document.getElementById(name);
}
//获取指定元素
function tag(name, elem) {
// 如果不提供上下文元素,则遍历整个文档
return (elem || document).getElementsByTagName(name);
}
//判断对象是否存在
function defined(o) {
return (typeof (o) != "undefined");
}
/* ******************************************************************* */
/* OBJECT FUNCTIONS */
/* ******************************************************************* */
var Obj = (function() {
var object = {};
//检查是否是对象
object.isObject = function(o) {
return (o != null && typeof (o) == "object" && defined(o.constructor) && o.constructor == Object && !defined(o.nodeName));
};
//检查是否是数组
object.isArray = function(o) {
return (o != null && typeof (o) == "object" && typeof (o.length) == "number" && (o.length == 0 || defined(o[0])));
};
//检查是否只包含空格
object.isBlank = function(val) {
if (val == null) { return true; }
for (var i = 0; i < val.length; i++) {
if ((val.charAt(i) != ' ') && (val.charAt(i) != "\t") && (val.charAt(i) != "\n") && (val.charAt(i) != "\r")) { return false; }
}
return true;
};
//是否是一个字符是数字
object.isDigit = function(num) {
if (num.length > 1) { return false; }
var string = "1234567890";
if (string.indexOf(num) != -1) { return true; }
return false;
};
//检查是否是int类型
object.isInteger = function(val) {
if (object.isBlank(val)) { return false; }
for (var i = 0; i < val.length; i++) {
if (!isDigit(val.charAt(i))) { return false; }
}
return true;
};
//检查是否是numeric类型
object.isNumeric = function(val) {
return (parseFloat(val, 10) == (val * 1));
};
//复制一个对象
object.clone = function(obj) {
if ((typeof (obj) != 'object') || (obj == null)) {
return obj;
}
if (obj.length == undefined) {
var newObj = {};
for (var i in obj) {
newObj[i] = object.clone(obj[i]);
}
} else {
var newObj = [];
for (var i = 0; i < obj.length; i++) {
newObj[i] = object.clone(obj[i]);
}
}
return newObj;
};
//设置对象的默认值
object.setDefaultValues = function(o, values) {
if (!defined(o) || o == null) {
o = {};
}
if (!defined(values) || values == null) {
return o;
}
for (var val in values) {
if (!defined(o[val])) {
o[val] = values[val];
}
}
return o;
};
return object;
})();
/* ******************************************************************* */
/* STRING FUNCTIONS */
/* ******************************************************************* */
var Str = (function() {
var stri = {};
stri.ltrim = function(str) {
if (str == null) { return null; }
for (var i = 0; str.charAt(i) == " "; i++);
return str.substring(i, str.length);
}
stri.rtrim = function(str) {
if (str == null) { return null; }
for (var i = str.length - 1; str.charAt(i) == " "; i--);
return str.substring(0, i + 1);
}
stri.trim = function (str) {
return stri.ltrim(stri.rtrim(str));
}
stri.ltrimAll = function(str) {
if (str == null) { return str; }
for (var i = 0; str.charAt(i) == " " || str.charAt(i) == "\n" || str.charAt(i) == "\t"; i++);
return str.substring(i, str.length);
}
stri.rtrimAll = function(str) {
if (str == null) { return str; }
for (var i = str.length - 1; str.charAt(i) == " " || str.charAt(i) == "\n" || str.charAt(i) == "\t"; i--);
return str.substring(0, i + 1);
}
stri.trimAll = function(str) {
return stri.ltrimAll(stri.rtrimAll(str));
}
return stri;
})();
/* ******************************************************************* */
/* ARRAY FUNCTIONS */
/* ******************************************************************* */
var Arr = (function() {
var arr = {};
//数组检索
arr.arraySearch = function(needle, data) {
for (var i = 0; i < data.length; i++) {
if (data[i] == needle) {
return i;
}
}
return undefined;
};
return arr;
})();
范例
function test_obj()
{
var a = ["1","2"];
var b = Obj.clone(a);
alert(b);
var c = {};
alert(Obj.isObject(a));
c.name = "name";
alert(Obj.isObject(c));
alert(Obj.isArray(a));
}
function test_setDefaultValues()
{
var o = {'a':true,'b':10};
Obj.setDefaultValues(o,{'a':false});
alert(Obj.setDefaultValues(o,{'a':false}).a);
Obj.setDefaultValues(o,{'b':20});
alert(Obj.setDefaultValues(o,{'a':false}).b);
Obj.setDefaultValues(o,{'c':'lang'});
alert(Obj.setDefaultValues(o,{'a':false}).c);
Obj.setDefaultValues(o,null);
alert(Obj.setDefaultValues(o,{'a':false}).o);
}
function test_arraySearch()
{
var a = ["a","b"];
alert(Arr.arraySearch("b",a));
alert(Arr.arraySearch("d",a));
}