`
阅读更多
    项目开发了一段时间,把js常用的函数备忘一下。

/*
 * 特殊字符校验
 * 如果字符中包含(' " % / $ # @ * \ ^ &) 特殊字符 ,返回true
 */
function checkStr(str) {
	var reg = /^[^@\/\'\\\"#$%&\^\*]+$/;
	if (str == null || str.length == 0) {
		return false;
	}
	if (reg.test(str)){
		return false;
	}
	return true;
}

/*
 *判断单一值是否为空
 */
function isNull(exp)
{
	if (!exp || exp.length ==0 || typeof(exp) =='undefined')
	{
	    return true ;
	}
	return false ;
}

/*
 * 判断数组中是否包含某个字符
 */
Array.prototype.S=String.fromCharCode(2);  
Array.prototype.in_array=function(e)  
{  
	var r=new RegExp(this.S+e+this.S);  
	return (r.test(this.S+this.join(this.S)+this.S));  
};




/*
 * 获得数组中指定元素的索引
 */
Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
    }
    return -1;
};

/*
 * 日期格式化函数
 */
Date.prototype.format = function(formatStr) {  
	var date = this;  
	 
	var zeroize = function (value, length) {  
	if (!length) {  
	length = 2;  
	}  
	value = new String(value);  
	for (var i = 0, zeros = ''; i < (length - value.length); i++) {  
	zeros += '0';  
	}  
	return zeros + value;  
	};  
	return formatStr.replace(/"[^"]*"|'[^']*'|\b(?:d{1,4}|M{1,4}|yy(?:yy)?|([hHmstT])\1?|[lLZ])\b/g, function($0) {  
	switch ($0) {  
	case 'd':return date.getDate();  
	case 'dd':return zeroize(date.getDate());  
	case 'ddd':return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][date.getDay()];  
	case 'dddd':return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][date.getDay()];  
	case 'M':return date.getMonth() + 1;  
	case 'MM':return zeroize(date.getMonth() + 1);  
	case 'MMM':return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][date.getMonth()];  
	case 'MMMM':return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][date.getMonth()];  
	case 'yy':return new String(date.getFullYear()).substr(2);  
	case 'yyyy':return date.getFullYear();  
	case 'h':return date.getHours() % 12 || 12;  
	case 'hh':return zeroize(date.getHours() % 12 || 12);  
	case 'H':return date.getHours();  
	case 'HH':return zeroize(date.getHours());  
	case 'm':return date.getMinutes();  
	case 'mm':return zeroize(date.getMinutes());  
	case 's':return date.getSeconds();  
	case 'ss':return zeroize(date.getSeconds());  
	case 'l':return date.getMilliseconds();  
	case 'll':return zeroize(date.getMilliseconds());  
	case 'tt':return date.getHours() < 12 ? 'am' : 'pm';  
	case 'TT':return date.getHours() < 12 ? 'AM' : 'PM';  
	}  
	});  
}; 

/*
 * 删除数组中指定的元素
 */
Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
};


/*
 *验证文件扩展名是否合法
 *@param fileName 上传文件名
 *@param fileSubfix 合法的扩展名
 *       fileSubfix 类型可以为字符串和数组
 */
function checkFiles(fileName,fileSubfix)
{
	if(isNull(fileSubfix))
	return false ;
	
	var fileSubfixStr = '';
	
	if(typeof(fileSubfix) == 'string')
	{
		fileSubfixStr  = fileSubfix ;
	}
	else if (typeof(fileSubfix) == 'object')
	{
		fileSubfixStr = fileSubfix.join("|");
	}
	else 
	{
		return false ;
	}
	
	var strRegex = "("+fileSubfixStr+")$";
	
	var re=new RegExp(strRegex);
	if (re.test(fileName.toLowerCase()))
	{
		return true;
	}
	else
	{
		return false;
	}
}

/*
 * 数组原型添加替换函数
 * @param target 被搜索的子字符串
 * @rpwidth  用于替换的子字符串
 */
Array.prototype.replace = function(target,rpwidth){
	var ta=this.slice(0),d='\'\'%\"\"';
	var str=ta.join(d);
	str=str.replace(new RegExp(target, 'g'),rpwidth);
	return str.split(d);
};



/*
 * 判断数组中是否存在重复值
 *
 */
Array.prototype.hasReValue=function()
{
	if(isNull(this) || !this.isArray() )
		return false ;
	 var arr = this ;
	 var hash = {};  
     for(var i in arr) {  
         if(hash[arr[i]])  
              return true;  
         hash[arr[i]] = true;  
     }  
  
     return false;  
};


/*
 * 判断对象是不是数组
 *
 */

Array.prototype.isArray = function() 
{ 
	return Object.prototype.toString.call(this) === '[object Array]'; 
};
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics