Javascript在项目开发中的常用方法

来源:互联网 发布:linux kernel usleep 编辑:程序博客网 时间:2024/06/12 03:44
/**
 * 文件描述:js项目开发中的常用方法工具
 *
 */


/**
 * 全局常量
 */
var DEFAULT_LINE_KEY = 0;
var DIS_PRECISION_NUM = 3;//距离精度位数
var UntilCommon = {};//公共函数对象
var MAX_KEYCODE_TIMELEN = 40;//输入间隔
/**
 * 功能:对Date的扩展,将 Date 转化为指定格式的String 
 * @param fmt   格式化字符串("yyyy-MM-dd hh:mm:ss.S")
 * @return 格式化后的日期字符串;
 */
Date.prototype.Format = function(fmt) 

var o = { 
"M+" : this.getMonth()+1,                 //月份 
"d+" : this.getDate(),                    //日 
"h+" : this.getHours(),                   //小时 
"m+" : this.getMinutes(),                 //分 
"s+" : this.getSeconds(),                 //秒 
"q+" : Math.floor((this.getMonth()+3)/3), //季度 
"S"  : this.getMilliseconds()             //毫秒 
}; 
if(/(y+)/.test(fmt)) 
fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
for(var k in o) 
if(new RegExp("("+ k +")").test(fmt)) 
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); 
return fmt; 
};
//
function getLocalTime(nS, len) {     
    return new Date(parseInt(nS)*len).Format("yyyy-MM-dd hh:mm:ss");
}
/**
 * 功能:String对象替转Date类型
 * @param strDate   被转字符串
 * @return 日期对象;
 * */
UntilCommon.StringToDate = function(strDate)
{
//因之前在数据库中的类型为2008-04-02 10:08:44,必须转化为2008/04/02 10:08:44格式才能实例化Date对象
var  strTemp=strDate.toString();
strTemp =  strTemp.replace(/-/g,"/");
var dDate = new Date(strTemp);
return dDate;
};
/**
 * 功能:增加String对象替换全部字符串方法
 * @param reallyDo   被替换字符串
 * @param replaceWith 替换成目标字符串
 * @param ignoreCase  是否忽略大小写
 * @return 替换完成字符串;
 */
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {
    if (!RegExp.prototype.isPrototypeOf(reallyDo))
    {
        return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);
    } 
    else 
    {
        return this.replace(reallyDo, replaceWith);
    }
};
/**
 * 
 */
UntilCommon.GetFileSuffix = function(filename){
var result = "";
try{
var start=filename.lastIndexOf(".")+1;
var end=filename.length;
   result=filename.substring(start,end);//后缀名
}catch(e){
result = "";
}
return  result.toLowerCase();
};
/**
 * 功能: 获取浏览器类型
 * @return  浏览器类型名称;
 */
UntilCommon.getOs= function()  
{  
   if(navigator.userAgent.indexOf("MSIE")>0) 
   {  
        return "MSIE";  
   } 
   
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)
   {  
        return "Firefox";  
   }  
   
   if(isSafari=navigator.userAgent.indexOf("Safari")>0) 
   {  
        return "Safari";  
   }   
   
   if(isCamino=navigator.userAgent.indexOf("Camino")>0)
   {  
        return "Camino";  
   }  
   
   if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0)
   {  
        return "Gecko";  
   }  
    
};
/**
 * 功能: 获取IE版本
 * @return  IE的版本号;
 */
UntilCommon.GetversionIE= function(){
var browser=navigator.appName; 

if(browser!="Microsoft Internet Explorer" )
{
return -1;
}
var b_version=navigator.appVersion;
var version=b_version.split(";"); 
var trim_Version=version[1].replace(/[ ]/g,""); 
if(trim_Version=="MSIE6.0") 

         return 6;

else if(trim_Version=="MSIE7.0") 

return 7;

else if(trim_Version=="MSIE8.0") 

return 8;

else if(trim_Version=="MSIE9.0") 

return 9;

else if(trim_Version=="MSIE10.0") 

return 10;

return 11;
};
/**
 * 功能: 绑定页面大小改变执行函数
 * @param fn   回调函数
 */
UntilCommon.BindOnReSize=function (fn)
{
window.onresize=fn;
};
/**
 * 功能: 关闭页面鼠标选中页面数据功能
 */
UntilCommon.disSelectBrowser = function()
{
var browserType =  UntilCommon.getOs();
//防止出现点击蓝色区域 IE和谷歌支持,火狐在css设置 -moz-user-select: none;
if((browserType == "MSIE")||(browserType == "Safari"))//ie&chrome
{  
    document.onselectstart=function(){return false;};
}
};
/**
 * 功能: 进入全屏
 */
UntilCommon.FullScreen = function () 
{
try{
 var docElm = document.documentElement;
 //W3C  
 if (docElm.requestFullscreen) 
 {  
     docElm.requestFullscreen();  
 }
 //FireFox  
 else if (docElm.mozRequestFullScreen) 
 {   
     docElm.mozRequestFullScreen();  
 }
 //Chrome等  
 else if (docElm.webkitRequestFullScreen) 
 {  
     docElm.webkitRequestFullScreen();  
 }
 //IE11
 else if (elem.msRequestFullscreen) 
 {
   elem.msRequestFullscreen();
 }
}
catch(e)
{console.log(e);
 if (typeof window.ActiveXObject != "undefined") 
 {
       // for Internet Explorer
       var wscript = new ActiveXObject("WScript.Shell");
       if (wscript != null) 
       {
           wscript.SendKeys("{F11}");
       }
 }
}
    finally
{
 
}
};
/**
 * 功能: 取消全屏进入全屏
 */
UntilCommon.ExitFullScreen =function ()
{
try
{
var browserNum =  UntilCommon.GetversionIE();
if( browserNum>-1 &&  browserNum< 10)
{
if (typeof window.ActiveXObject != "undefined")

var wscript = new ActiveXObject("WScript.Shell");
       if (wscript != null) 
       { 
           wscript.SendKeys("{F11}");
       }
}
}
else if (document.exitFullscreen) 
{  
   document.exitFullscreen();  
}  
else if (document.mozCancelFullScreen) 
{  
   document.mozCancelFullScreen();  
}  
else if (document.webkitCancelFullScreen) 

   document.webkitCancelFullScreen();  
}
else if (document.msExitFullscreen) 

     document.msExitFullscreen();
}
}
catch(e)
{
if (typeof window.ActiveXObject != "undefined") 

// for Internet Explorer
var wscript = new ActiveXObject("WScript.Shell");
       if (wscript != null) 
       { 
           wscript.SendKeys("{F11}");
       }
}
  }
  finally
  {
 
  }
};
/**
 * 功能: 在json对象添加objName
 * @param objName   对象名称
 * @param jsondata  json对象
 * @return json对象;
 */
UntilCommon.JsonToObjJson = function(objName, jsondata)
{
var jsonNew = {};
   for(var key in jsondata)
   {  
       jsonNew[objName+"."+key] =jsondata[key];
   }  
return jsonNew;
};
//
UntilCommon.cloneObject = function(jsondata)
{
var jsonNew = {};
   for(var key in jsondata)
   {  
       jsonNew[key] =jsondata[key];
   }  
return jsonNew;
};
/**
 * 功能: json对象转换为String字符串
 * @param oJson  json对象
 * @return json对象的字符内容;
 */
UntilCommon.Json2ToString =function (oJson)

if(JSON)
{
return JSON.stringify(oJson);
}
    var S = []; 
    var J = ""; 
    if (Object.prototype.toString.apply(oJson) === '[object Array]') 
    { 
        for (var i = 0; i < oJson.length; i++)
        {
         S.push(O2String(oJson[i]));
        }
           
        J = '[' + S.join(',') + ']'; 
    } 
    else if (Object.prototype.toString.apply(oJson) === '[object Date]') 
    { 
        J = "new Date(" + oJson.getTime() + ")"; 
    } 
    else if (Object.prototype.toString.apply(oJson) === '[object RegExp]' || Object.prototype.toString.apply(oJson) === '[object Function]')
    { 
        J = oJson.toString(); 
    } 
    else if (Object.prototype.toString.apply(oJson) === '[object Object]') 
    { 
        for (var i in oJson) 
        { 
            oJson[i] = typeof (oJson[i]) == 'string' ? '"' + oJson[i] + '"' : (typeof (oJson[i]) === 'object' ? O2String(oJson[i]) : oJson[i]); 
            S.push(i + ':' + oJson[i]); 
        } 
        J = '{' + S.join(',') + '}'; 
    } 
    return J; 
};
/**
 *功能: 用于下载网页数据并加载的本地
 *@param  useURL 下载页面URL
 *@param  callbackFn 下载完成回调函数
 */
UntilCommon.DomLoadHTML = function(useURL,callbackFn)
{
 $.ajax({
type : "POST",
url : useURL,
dataType : "text",
async:true,
contentType : "application/x-www-form-urlencoded;charset=UTF-8",
success :callbackFn
});  
};
/**
 *功能: 刷新当前页面
 *@param  bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新")
 */
UntilCommon.reload= function(bForceGet )
{
bForceGet = typeof bForceGet == 'undefined' ? false : bForceGet;
location.reload(bForceGet);   
};
/**
 *功能: 获取系统窗口大小
 * @return  size
 */
UntilCommon.GetSystemSize = function()
{
  var xWidth = $(document).width();
  var xHeight =$(document).height(); 
  //
//   if(UntilCommon.GetversionIE() > 0)
//   {
//    xWidth = $(document).width()-3.3;
//    xHeight =$(document).height()-3.3; 
//   }
  return {'width':xWidth,'height':xHeight};
};
//屏幕分辨率
UntilCommon.GetScreenSize = function (){
return {'width':window.screen.width,'height':window.screen.height};
};
//屏幕可用工作区
UntilCommon.GetScreenAvailSize = function (){
return {'width':window.screen.availWidth,'height':window.screen.availHeight};
};
/**     
 *功能: 验证字符串的合法性
 * @param value 要验证的字符串的内容
 * @param name 中文名称
 * @param len 字符的最大长度
 * @param isNotNull 是否非空
 * @return true/false;
 */
UntilCommon.checkText= function (value, name, len, isNotNull)
{
//
if(isNotNull) 
{
if(UntilCommon.TrimText (value) == "") 
{
$.messager.alert('提示信息', name+"不能为空,请重新输入!", 'info');
return true;
}
}
//
if(value.length >len) 
{
$.messager.alert('提示信息', name+"不能超过"+len+"个字符,请重新输入!", "info");
return true;
}
else 
{
return false;
}
};
/**
 * 功能: 去除右空格
 * @param str 要处理的字符串
 * @return 处理后的字符串
 */  
UntilCommon.rTrimText = function(str) 
{
var pattern = new RegExp("[\\s]+$","gi");
return str.replace(pattern,"");
};
/**
 * 功能: 去除左空格
 * @param str 要处理的字符串
 * @return 处理后的字符串
 */
UntilCommon.lTrimText = function (str) 
{
var pattern = new RegExp("^[\\s]+","gi");
return str.replace(pattern,"");
};
/**
 * 功能: 去除两边空格
 * @param str 要处理的字符串
 * @return 处理后的字符串
 */
UntilCommon.TrimText = function (str) 
{
return UntilCommon.rTrimText(UntilCommon.lTrimText(str));
};
/**
 * 功能: 禁止中文
 * @param textid 所要判断的对象
 */
UntilCommon.checktextnoZh = function (textid, charnum) 
{
var strTemp = textid.value.replace(/[\u4E00-\u9FA5\_]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};


/**
 * 功能: 验证输入框为数字、字符、中文
 * @param textid 所要判断的对象
 */
UntilCommon.checktextZh =function (textid, charnum)
{
var strTemp =textid.value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\_/]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};


/**
 * 功能: 验证输入框为数字、英文、。、@
 * @param textid 所要判断的对象
 */
UntilCommon.checktextmail = function (textid, charnum) 
{
var strTemp =textid.value.replace(/[^\a-\z\A-\Z0-9\.\@]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};
/**
 * 功能: 验证输入框为数字、英文、。、@
 * @param textid 所要判断的对象
 */
UntilCommon.checktextIP = function (textid, charnum) 
{
var strTemp =textid.value.replace(/[^\a-\z\A-\Z0-9\.\:]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};
/**
 * 功能: 验证输入框为数字、英文
 * @param textid 所要判断的对象
 */
UntilCommon.checktextEn = function (textid, charnum) 
{
var strTemp =textid.value.replace(/[^\a-\z\A-\Z0-9\_]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};
//
UntilCommon.checktextSize = function (textid, charnum) 
{
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};


/**
 * 功能: 验证输入框为数字
 * @param textid 所要判断的对象
 */
UntilCommon.checktextNum = function (textid, charnum) 
{
var strTemp =textid.value.replace(/[^0-9]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};
/**
 * 功能: 验证输入框为数字和.
 * @param textid 所要判断的对象
 */
UntilCommon.checktextFloat = function (textid, charnum) 
{
var strTemp =textid.value.replace(/[^0-9\.]/g,'');
if(strTemp != textid.value){
textid.value=strTemp;
}
if(charnum != null && textid.value.length > charnum)
{
textid.value=textid.value.substr(0, charnum);
}
};
/**
 * 功能: 显示提示消息
 * @param vtitle 提示框标题
 * @param vmsg 提示消息内容
 */
UntilCommon.showMessage = function(vtitle,vmsg)
{
$.messager.show({title:vtitle,msg:vmsg,timeout:5000,showType:'slide'});
};
/**
 * 功能: 显示加载信息
 * @param msg 加载信息内容
 */
UntilCommon.ShowDataLoadding = function (msg)
{
$('#showloagingMsg').html(msg);
$('#showloaging').show();
};
/**
 * 功能: 隐藏加载信息
 */
UntilCommon.HideDataLoadding = function ()
{
$('#showloaging').hide();
};
//判断输入键是否有效
UntilCommon.IsUseKeyCode =function(keycode){
if(keycode == 13 //回车
 ||(64<keycode && keycode< 91)//A~Z
 ||(47<keycode && keycode< 58)//0~9
 ||(95<keycode && keycode< 106)//小键盘 ~9
 ){
return true;
}
return false;
};
//获取系统常量信息
SystemData.browserType = UntilCommon.getOs();
SystemData.IsIE = SystemData.browserType =="MSIE";
SystemData.VersionIE = UntilCommon.GetversionIE();
0 0
原创粉丝点击