您的位置:首页 > Web前端 > JavaScript

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

2015-05-20 11:12 417 查看
/**

* 文件描述: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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: