【JavaScript】JavaScript函数(mySelf)

来源:互联网 发布:淘宝店铺怎样上传图片 编辑:程序博客网 时间:2024/05/24 07:06
------------------------------------------- JavaScript ----------------------------------1、保留小数点后2位的函数function found(num){ // Math.round(num) 将一个数字舍入到最接近的整数,但是不能保留小数位return Math.round(num * 100) / 100 ;}    2、生成1 - 指定参数的随机数函数 function rand(num){//Math.random() 随机生成一个 0 - 1 之间的小数,无法返回指定范围的随机数字 retrun Math.floor(Math.random() * num) + 1; }  -------------- 函数检索 --------------trim函数:                         trim() lTrim() rTrim()校验字符串是否为空:                 checkIsNotEmpty(str)校验字符串是否为整型:               checkIsInteger(str)校验整型最小值:                    checkIntegerMinValue(str,val)校验整型最大值:                    checkIntegerMaxValue(str,val) 校验整型是否为非负数:               isNotNegativeInteger(str)校验字符串是否为浮点型:             checkIsDouble(str) 校验浮点型最小值:                  checkDoubleMinValue(str,val)校验浮点型最大值:                  checkDoubleMaxValue(str,val)校验浮点型是否为非负数:             isNotNegativeDouble(str)校验字符串是否为日期型:             checkIsValidDate(str)校验两个日期的先后:                checkDateEarlier(strStart,strEnd)校验字符串是否为email型:           checkEmail(str)校验字符串是否为中文:               checkIsChinese(str)计算字符串的长度,一个汉字两个字符:   realLength()校验字符串是否符合自定义正则表达式:   checkMask(str,pat)得到文件的后缀名:                   getFilePostfix(oFile)  -------------- 函数检索 --------------/*** added by LxcJie 2004.6.25* 去除多余空格函数* trim:去除两边空格 lTrim:去除左空格 rTrim: 去除右空格* 用法:*     var str = "  hello ";*     str = str.trim();*/String.prototype.trim = function(){    return this.replace(/(^[\s]*)|([\s]*$)/g, "");}String.prototype.lTrim = function(){    return this.replace(/(^[\s]*)/g, "");}String.prototype.rTrim = function(){    return this.replace(/([\s]*$)/g, "");}/********************************** Empty **************************************//***校验字符串是否为空*返回值:*如果不为空,定义校验通过,返回true*如果为空,校验不通过,返回false               参考提示信息:输入域不能为空!*/function checkIsNotEmpty(str){    if(str.trim() == "")        return false;    else        return true;}//~~~/*--------------------------------- Empty --------------------------------------*//********************************** Integer *************************************//***校验字符串是否为整型*返回值:*如果为空,定义校验通过,      返回true*如果字串全部为数字,校验通过,返回true*如果校验不通过,              返回false     参考提示信息:输入域必须为数字!*/function checkIsInteger(str){    //如果为空,则通过校验    if(str == "")        return true;    if(/^(\-?)(\d+)$/.test(str))        return true;    else        return false;}//~~~/***校验整型最小值*str:要校验的串。  val:比较的值**返回值:*如果为空,定义校验通过,                返回true*如果满足条件,大于等于给定值,校验通过,返回true*如果小于给定值,                        返回false              参考提示信息:输入域不能小于给定值!*/function checkIntegerMinValue(str,val){    //如果为空,则通过校验    if(str == "")        return true;    if(typeof(val) != "string")        val = val + "";    if(checkIsInteger(str) == true)    {        if(parseInt(str,10)>=parseInt(val,10))            return true;        else            return false;    }    else        return false;}//~~~/***校验整型最大值*str:要校验的串。  val:比较的值**返回值:*如果为空,定义校验通过,                返回true*如果满足条件,小于等于给定值,校验通过,返回true*如果大于给定值,                        返回false       参考提示信息:输入值不能大于给定值!*/function checkIntegerMaxValue(str,val){    //如果为空,则通过校验    if(str == "")        return true;    if(typeof(val) != "string")        val = val + "";    if(checkIsInteger(str) == true)    {        if(parseInt(str,10)<=parseInt(val,10))            return true;        else            return false;    }    else        return false;}//~~~/***校验整型是否为非负数*str:要校验的串。**返回值:*如果为空,定义校验通过,返回true*如果非负数,            返回true*如果是负数,            返回false               参考提示信息:输入值不能是负数!*/function isNotNegativeInteger(str){    //如果为空,则通过校验    if(str == "")        return true;    if(checkIsInteger(str) == true)    {        if(parseInt(str,10) < 0)            return false;        else            return true;    }    else        return false;}//~~~/*--------------------------------- Integer --------------------------------------*//********************************** Double ****************************************//***校验字符串是否为浮点型*返回值:*如果为空,定义校验通过,      返回true*如果字串为浮点型,校验通过,  返回true*如果校验不通过,              返回false     参考提示信息:输入域不是合法的浮点数!*/function checkIsDouble(str){    //如果为空,则通过校验    if(str == "")        return true;    //如果是整数,则校验整数的有效性    if(str.indexOf(".") == -1)    {        if(checkIsInteger(str) == true)            return true;        else            return false;    }    else    {        if(/^(\-?)(\d+)(.{1})(\d+)$/g.test(str))            return true;        else            return false;    }}//~~~/***校验浮点型最小值*str:要校验的串。  val:比较的值**返回值:*如果为空,定义校验通过,                返回true*如果满足条件,大于等于给定值,校验通过,返回true*如果小于给定值,                        返回false              参考提示信息:输入域不能小于给定值!*/function checkDoubleMinValue(str,val){    //如果为空,则通过校验    if(str == "")        return true;    if(typeof(val) != "string")        val = val + "";    if(checkIsDouble(str) == true)    {        if(parseFloat(str)>=parseFloat(val))            return true;        else            return false;    }    else        return false;}//~~~/***校验浮点型最大值*str:要校验的串。  val:比较的值**返回值:*如果为空,定义校验通过,                返回true*如果满足条件,小于等于给定值,校验通过,返回true*如果大于给定值,                        返回false       参考提示信息:输入值不能大于给定值!*/function checkDoubleMaxValue(str,val){    //如果为空,则通过校验    if(str == "")        return true;    if(typeof(val) != "string")        val = val + "";    if(checkIsDouble(str) == true)    {        if(parseFloat(str)<=parseFloat(val))            return true;        else            return false;    }    else        return false;}//~~~/***校验浮点型是否为非负数*str:要校验的串。**返回值:*如果为空,定义校验通过,返回true*如果非负数,            返回true*如果是负数,            返回false               参考提示信息:输入值不能是负数!*/function isNotNegativeDouble(str){    //如果为空,则通过校验    if(str == "")        return true;    if(checkIsDouble(str) == true)    {        if(parseFloat(str) < 0)            return false;        else            return true;    }    else        return false;}//~~~/*--------------------------------- Double ---------------------------------------*//********************************** date ******************************************//***校验字符串是否为日期型*返回值:*如果为空,定义校验通过,           返回true*如果字串为日期型,校验通过,       返回true*如果日期不合法,                   返回false    参考提示信息:输入域的时间不合法!(yyyy-MM-dd)*/function checkIsValidDate(str){    //如果为空,则通过校验    if(str == "")        return true;    var pattern = /^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g;    if(!pattern.test(str))        return false;    var arrDate = str.split("-");    if(parseInt(arrDate[0],10) < 100)        arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";    var date =  new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]);    if(date.getYear() == arrDate[0]       && date.getMonth() == (parseInt(arrDate[1],10) -1)+""       && date.getDate() == arrDate[2])        return true;    else        return false;}//~~~/***校验两个日期的先后*返回值:*如果其中有一个日期为空,校验通过,          返回true*如果起始日期早于等于终止日期,校验通过,   返回true*如果起始日期晚于终止日期,                 返回false    参考提示信息: 起始日期不能晚于结束日期。*/function checkDateEarlier(strStart,strEnd){    if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)        return false;    //如果有一个输入为空,则通过检验    if (( strStart == "" ) || ( strEnd == "" ))        return true;    var arr1 = strStart.split("-");    var arr2 = strEnd.split("-");    var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);    var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);    if(arr1[1].length == 1)        arr1[1] = "0" + arr1[1];    if(arr1[2].length == 1)        arr1[2] = "0" + arr1[2];    if(arr2[1].length == 1)        arr2[1] = "0" + arr2[1];    if(arr2[2].length == 1)        arr2[2]="0" + arr2[2];    var d1 = arr1[0] + arr1[1] + arr1[2];    var d2 = arr2[0] + arr2[1] + arr2[2];    if(parseInt(d1,10) > parseInt(d2,10))       return false;    else       return true;}//~~~/*--------------------------------- date -----------------------------------------*//********************************** email *****************************************//***校验字符串是否为email型*返回值:*如果为空,定义校验通过,           返回true*如果字串为email型,校验通过,      返回true*如果email不合法,                  返回false    参考提示信息:Email的格式不正確!*/function checkEmail(str){    //如果为空,则通过校验    if(str == "")        return true;    if (str.charAt(0) == "." || str.charAt(0) == "@" || str.indexOf('@', 0) == -1        || str.indexOf('.', 0) == -1 || str.lastIndexOf("@") == str.length-1 || str.lastIndexOf(".") == str.length-1)        return false;    else        return true;}//~~~/*--------------------------------- email ----------------------------------------*//********************************** chinese ***************************************//***校验字符串是否为中文*返回值:*如果为空,定义校验通过,           返回true*如果字串为中文,校验通过,         返回true*如果字串为非中文,             返回false    参考提示信息:必须为中文!*/function checkIsChinese(str){    //如果值为空,通过校验    if (str == "")        return true;    var pattern = /^([\u4E00-\u9FA5]|[\uFE30-\uFFA0])*$/gi;    if (pattern.test(str))        return true;    else        return false;}//~~~/*** 计算字符串的长度,一个汉字两个字符*/String.prototype.realLength = function(){  return this.replace(/[^\x00-\xff]/g,"**").length;}/*--------------------------------- chinese --------------------------------------*//********************************** mask ***************************************//***校验字符串是否符合自定义正则表达式*str 要校验的字串  pat 自定义的正则表达式*返回值:*如果为空,定义校验通过,           返回true*如果字串符合,校验通过,           返回true*如果字串不符合,                   返回false    参考提示信息:必须满足***模式*/function checkMask(str,pat){    //如果值为空,通过校验    if (str == "")        return true;    var pattern = new RegExp(pat,"gi")    if (pattern.test(str))        return true;    else        return false;}//~~~/*--------------------------------- mask --------------------------------------*//********************************** file ***************************************//*** added by LxcJie 2004.6.25* 得到文件的后缀名* oFile为file控件对象*/function getFilePostfix(oFile){    if(oFile == null)        return null;    var pattern = /(.*)\.(.*)$/gi;    if(typeof(oFile) == "object")    {        if(oFile.value == null || oFile.value == "")            return null;        var arr = pattern.exec(oFile.value);        return RegExp.$2;    }    else if(typeof(oFile) == "string")    {        var arr = pattern.exec(oFile);        return RegExp.$2;    }    else        return null;}//~~~/*--------------------------------- file --------------------------------------*/http://www.51windows.net/myjs/window.close关闭窗口,如何可以不弹出系统提示,直接关闭        private void btnClose_Click(object sender, System.EventArgs e)        {            Response.Write("<script language=javascript>window.opener=null;window.close() ;</script>");        }如果是通过子窗体关闭父窗体时怎么做呢, 子窗体(弹出窗体):            Response.Write("<script>window.opener.top.opener=null;window.opener.top.close()</script>") JavaScript在ASP中实现掩码文本框 来源:潇潇雨吧 时间:2004-12-3 13:22:38 点击: 票数:41 点击:488      在网页中输日期、时间、IP地址等需要一定的格式限制,否则将会程序将会很难和程序沟通。  最近在做一个程序正好需要用到此方面,在网上找到过相应的程序,但用起来都非常恶,于是乎只好自己实现一个了。  首先实现两个函数用来操作光标:   // 得到一个文本框控件的当前光标位置  function getPos(obj)  {  obj.focus();  var workRange=document.selection.createRange();  obj.select();  var allRange=document.selection.createRange();  workRange.setEndPoint("StartToStart",allRange);  var len=workRange.text.length;  workRange.collapse(false);  workRange.select();  return len;  }     // 设置一个文本框控件的当前光标位置  function setCursor(obj,num){  range=obj.createTextRange();   range.collapse(true);   range.moveStart('character',num);   range.select();  }   主要函数实现的主要思想是当键盘按下时进行一些操作,我设计在OnKeyDown事件中。  在OnKeyDown中,首先将系统默认的键盘处理屏蔽掉   // 封住传统处理  window.event.returnValue = false;   然后处理相应需要处理的键盘消息。  这里随便处理几个必要的就可以了,因为文本框本身也不需要什么太多的用户操作,所以把光标的前移、后移、删除操作进行处理,这样你的文本框就有了基本的操作,现在操作起来已经很顺手了。   // 自行处理按钮  switch (nKeyCode)  {  case 8:// 如果动作是退格[<-]  {  strText =  strText.substr(0,nCursorPos-1) + strText.substr(nCursorPos, nTextLen-nCursorPos);  nCursorPos--;  break;  }  case 46:// 如果动作是del[del]  {  strText =  strText.substr(0,nCursorPos) + strText.substr(nCursorPos+1,nTextLen-nCursorPos-1);  nCursorPos--;  break;  }  case 38:// 如果动作是方向键[上]  case 39:// 如果动作是方向键[右]  {  nCursorPos++;  break;  } case 37:// 如果动作是方向键[左]  case 40:// 如果动作是方向键[下]  {  nCursorPos--;  break;  }  default :  {  strText =  strText.substr(0,nCursorPos) + String.fromCharCode(nKeyCode) + strText.substr(nCursorPos,nTextLen);  nCursorPos++;  if (nCursorPos>strText.length)  {  nCursorPos=strText.length;  }  break;  }  }   其它的任何消息都当添加一个字符,可见不可见的字符,都将添加并光标往后走一下。见上方的default 处理部份。  然后判断掩码是否正确,如果正确,那么此次输入合法,将值显示添加到文本框中。   if (strText.match(expMask))  {  // 输入格式正确  objTextBox.value = strText;  }   最后将光标移到适当的位置。        // 移动光标  setCursor(objTextBox,nCursorPos);   完成!  其主要就是把系统的键盘消息替换成自己的处理,屏蔽掉系统的,这样就可以获得最大的操控。  如此就完成了一个对指定的正则表达式进行格式限制的TEXTBOX就诞生了。  附完整代码:   // 根据指定正表达式,来控制OBJ表示  function mask(objTextBox,mask)   {  // 掩码  expMask = new RegExp(mask);  // 当前文本框中的文本  var strText =objTextBox.value;  // 文本长度  var nTextLen=strText.length;  // 当前光标位置  var nCursorPos=getPos(objTextBox);  // 按下的键码  var nKeyCode = window.event.keyCode;  if (nKeyCode > 95) nKeyCode -= (95-47);  // 封住传统处理  window.event.returnValue = false;   // 自行处理按钮  switch (nKeyCode)  {  case 8:// 如果动作是退格[<-]  {  strText =  strText.substr(0,nCursorPos-1) + strText.substr(nCursorPos, nTextLen-nCursorPos);  nCursorPos--;  break;  }  case 46:// 如果动作是del[del]  {  strText =  strText.substr(0,nCursorPos) + strText.substr(nCursorPos+1,nTextLen-nCursorPos-1);  nCursorPos--;  break;  }  case 38:// 如果动作是方向键[上]  case 39:// 如果动作是方向键[右]  {  nCursorPos++;  break;  }  case 37:// 如果动作是方向键[左]  case 40:// 如果动作是方向键[下]  {  nCursorPos--;  break;  }  default :  {  strText =  strText.substr(0,nCursorPos) + String.fromCharCode(nKeyCode) + strText.substr(nCursorPos,nTextLen);  nCursorPos++;  if (nCursorPos>strText.length)  {  nCursorPos=strText.length;  }  break;  }  }  if (strText.match(expMask))  {  // 输入格式正确  objTextBox.value = strText;  }  // 移动光标  setCursor(objTextBox,nCursorPos);  }  // 得到一个文本框控件的当前光标位置  function getPos(obj)  {   obj.focus();  var workRange=document.selection.createRange();  obj.select();  var allRange=document.selection.createRange();  workRange.setEndPoint("StartToStart",allRange);  var len=workRange.text.length;  workRange.collapse(false);  workRange.select();  return len;  }  // 设置一个文本框控件的当前光标位置  function setCursor(obj,num){  range=obj.createTextRange();   range.collapse(true);   range.moveStart('character',num);   range.select();  }   使用方法:  1.设置默认的、不定的格式初值。如:日期时间的格式初值为“// ::”,表示(年/月/日 时:分:秒)。IP的为“...”(192.168.0.1)。其实就是设置一个不会违反正则表达式的字符就可以。  2.在表单的TEXT框的OnKeyDown事件中调用mask函数,参数objTextBox是指定的文本框的name。参数mask是正则表达式格式的掩码。  例子:  要使用日期时间型的掩码框   <input name="i_etmend" type="text" id="i_etmend" value="{I_ETMEND}" maxlength="19"  onkeydown="mask(i_etmend, '^(([0-9]{0,4})\-([0-9]{0,2})\-([0-9]{0,2}) ([0-9]{0,2}):([0-9]{0,2}):([0-9]{0,2}))

)">   要使用IP掩码框

原创粉丝点击