0%

Javascript 常用函数大全

http://www.cnitblog.com/flutist1225/articles/18780.html

一、验证类

1、数字类
1.1 整数
/*********

  • signed int
  • /
    function IsInt(str)
    {
    if(/^(-|+)?\d+$/.test(str))
    {
    return true;
    }
    else
    {
    alert(“false”);
    return false;
    }
    }
    1.2 正整数 (包含0)
    /
    ********
  • unsigned int str >=0
  • */
    function IsUInt(str)
    {
    if(/^\d+$/.test(str))
    {
    alert(“true”);
    return true;
    }
    else
    {
    alert(“false”);
    return false;
    }
    }
    1.3字节
    function isByte(x)
    {
    return (!isNaN(x) && x >= 0 && x <= 255);
    }
    1.4无符号整数
    function isUnsignedInt(x)
    {
    return (!isNaN(x) && x > 0 && x <= 65535);
    }

1.5 负整数
/*********

  • int str <0

  • /
    function Is_Int(str)
    {
    if ( /^-\d+$/.test(str))
    {
    alert(“true”);
    return true;
    }
    else
    {
    alert(“false”);
    return false;
    }
    }
    1.6小于等于iMax 整数
    /
    ********

  • int str <=iMAX

  • /
    function IntLowMax(str,iMAX)
    {
    if ((/^\d+$/.test(str)) && (str <= iMAX))
    {
    alert(“true”);
    return true;
    }
    else
    {
    alert(“false”);
    return false;
    }
    }
    1.7 大于等于iMin整数
    /
    ********

  • int str >=iMin

  • /
    function IntHighMin(str,iMin)
    {
    if ((/^\d+$/.test(str)) && (str >= iMin))
    {
    alert(“true”);
    return true;
    }
    else
    {
    alert(“false”);
    return false;
    }
    }
    1.8 iMin-iMax 之间的整数
    /
    **********************

  • int iMin<=str <=iMax

  • ************************/
    function IntinMinMax(str,iMin,iMax)
    {
    if ((/^\d+$/.test(str)) && (iMin<=parseInt(str)) &&(parseInt(str)<=iMax))
    {
    return true;
    }
    else
    {
    alert(“false!”);
    return false;
    }
    }
    1.9 是十六进制数
    function isHexStr(sTest){
    var result = true;
    var m;
    sTest = String(x).replace(/^\s+|\s+$/g,””);
    m = sTest.match(/^([0-9a-fA-F]*)$/);

    if(m == null)
    {
    alert(“Is not Hex string!”);
    result = false;
    }
    return result;

}
2、字符类
2.1 a-Z或A-Z的字母组成
/***********************

  • just a string a-zA-Z
  • ************************/
    function IsChar(str)
    {
    if (/[^a-zA-Z]/g.test(str))
    {
    alert(“nor char!!”);
    return false;
    }
    else
    {
    return true;
    }
    }
    2.2 字母和数字组成
    /***********************
  • just a string a-zA-Z0-9
  • ************************/
    function IsDigitalChar(str)
    {
    if (/[^0-9a-zA-Z]/g.test(str))
    {
    alert(“nor char!!”);
    return false;
    }
    else
    {
    return true;
    }
    }

2.3 由字母和数字,下划线组成.且开头的只能是下划线和字母
/***********************

  • a string a-zA-Z0-9_
  • ************************/
    function IsDigitalChar_(str)
    {
    if (/^([a-zA-z_]{1})([\w]*)$/g.test(str))
    {
    return true;
    }
    else
    {
    alert(“not char!!”);
    return false;
    }
    }
    2.4 字符串替换函数.Replace();

3、网络类
3.1 IP_address 点分十进制表示 (e.g: 172.17.8.1)
function isip(s){
var check=function(v){try{return (v<=255 && v>=0)}catch(x){return false}};
var re=s.split(“.”);

if( (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false)
{
return true;
}
else
{
alert(“Invalid IP”);
return false;
}
}
3.2 Mask 点分十进制表示( e.g: 255.255.255.0 , not netmask 32, 24 and so on)
function isFF(x)
{
return (!isNaN(x) && x >= 0 && x <= 255);
}

function isDottedNetmask(s)
{
s = String(s).replace(/^\s+|\s+$/g,””);//remove space
var result = s.match(/^(\d{1,3}).(\d{1,3}).(\d{1,3}).(\d{1,3})$/);

if (result && result.length == 5 && isFF(result[1]) && isFF(result[2]) && isFF(result[3]) && isFF(result[4]))
{
var last_bit = 1; // accept 255.255.255.255
var cnt = 0;
for (var i=1; i <= 4; i++)
{
var mask = parseInt(result[i], 10);

    for (var j=7; j >= 0; j--)
    {
      var n = Math.pow(2, j);
      
      var bit_on = (mask & n) ? 1 : 0;
      if (last_bit != bit_on)
      {
        last_bit = bit_on;
        cnt++;    //no change or Just change once,from 1 to 0  : subnet mask
      }
    }
  }
  if(cnt > 1) 
  {
   alert("Invalid NetMask");
   return false;
  }
  else
  {
   return true;
  }
}

   alert("Invalid NetMask");
   return false;      

}
3.3 netmask, both isDottedNetmask and netmask, e.g mask32, 24 …
function isNetmask(s)
{
if (isDottedNetmask(s)) // isDottedNetmask
{
return true;
}
s = String(s).replace(/^\s+|\s+$/g,””); //else is netmask like 32, 24
if (s.match(/[^0-9]/))
{
return false;
}
var nm = parseInt(s);
if (isNaN(nm) || nm < 0 || nm > 32)
{
return false;
}
return true;
}

3.4 Mac_address (e.g: 01:02:03:04:05:06)
function isMac1(sTest)
{
var re1=/^([0-9a-fA-F]{2}-){5}([0-9a-fA-F]){2}$/; //window 00-10-20-30-40-50
var re2=/^([0-9a-fA-F]{2}:){5}([0-9a-fA-F]){2}$/; //Linux 00:10:20:30:40:50
var ret=(re1.test(sTest) || re2.test(sTest));
if( ret==false )
alert(“Invalid Mac”);
return ret;
}
function isMac2(x){ // e.g: 001122aabbff
var result = true;
var m;
x = String(x).replace(/^\s+|\s+$/g,””);
m = x.match(/^([0-9a-fA-F]{12})$/);
if(m == null)
{
alert(“Invalid Mac Address”);
result = false;
}
return result;
}
3.5 Port (e.g: 1-65535)
function isPort(sTest)
{
var ret=( sTest > 0 && sTest < 65536 );

 if(ret == false)
 {
  alert("Invalid Port Number");
 }

return ret;
}
3.6 E-mail(e.g: xx@xx.xxx)
/***********************

  • mail format is : xxx@xxx.xxx
  • ************************/
    function ismail(mail)
    {

if(new RegExp(/^\w+((-\w+)|(.\w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/).test(mail))
{
return true;
}
else
{
alert(“Invalided Email format”);
return false;
}
}
3.7 ICMP类型和代码
function isValidIcmpType(x){
if(x==””) return false;
return (!isNaN(x) && ((x == 0) || (x >= 3 && x <= 5) ||
(x == || (x >= 11 && x <= 16)) );
}

function isValidIcmpCode(x){
if(x==””) return false;
return (!isNaN(x) && (x>=0) && x<(256) );
}

4、长度和排序
4.1 输入字符长度为n个字符
function strLen(sTest,sMax)
{
if(sTest.length !=sMax)
{
alert(“String length should be “+sMax);
return false;
}
return true;
}
4.2 输入字符长度在0-N之间
function strLenMax(sTest,sMax)
{
if(sTest.length>sMax)
{
alert(“String length between 0 to “+sMax);
return false;
}
return true;
}
5、浏览器类
5.1 判断浏览器的类型
function BrowseName()
{
alert(window.navigator.appName);
}

5.2 判断浏览器版本
function browseVer()
{
alert(window.navigator.appVersion);
}
5.3 判断客户端的分辨率
function Screen()
{
alert(window.screen.width+” * “+ window.screen.height);
}

6、时间类
6.1 短时间 (e.g: 13:04:06)
function isTime(str)
{
var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
if (a == null || a[1]>23 || a[3]>59 || a[4]>59)
{
alert(“Format is invalided”);
return false
}
else
{
return true;
}
}
6.2 短日期 (e.g: 2003-12-05)
function strDate(str)
{
var r = str.match(/^(\d{1,4})(-|/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
alert(“Pattern err!”);
return false;
}
var d= new Date(r[1], r[3]-1, r[4]);
if(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4])
{
return true;
}
else
{
alert(“Invalided date”);
return false;
}
}
6.3 长时间 (e.g: 2003-12-05 13:04:06 or 2003/12/15 1:2:3)
function isDateTime(str) //e.g:
{
var reg = /^(\d{1,4})(-|/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)
{
alert(“Pattern err!”);
return false;
}
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
if (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7])
{
return true;
}
else
{
alert(“Invalided DateTime”);
return false;
}
}
6.4 只有年和月 (e.g: 2003-05,或者2003/5)
function isDate(str)
{
var reg = /^(\d{1,4})(-|/)(\d{1,2})$/;
var r = str.match(reg);
if(r==null)
{
alert(“Pattern err!”);
return false;
}
var d= new Date(r[1], r[3]-1);
if (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3])
{
return true;
}
else
{
alert(“Invalided Date”);
return false;
}
}
6.5 只有小时和分钟 (e.g: 12:03)
function isTime(str)
{
var reg = /^(\d{1,2}):(\d{1,2})$/;
var r = str.match(reg);
if(r==null)
{
alert(“Pattern err!”);
return false;
}
var hour= parseInt(r[1]);
var min= parseInt(r[2]);
if (hour >=0 && hour < 24 && min >=0 && min <60)
{
return true;
}
else
{
alert(“Invalid Time”);
return false;
}
}

7、表单类
7.1 所有的表单的值都不能为空
function NonNull(sTest)
{
if(sTest.value.replace(/^\s+|\s+$/g,””)==””)
{
alert(“Input should be NULL!”);
return false;
}

return true;
}
7.2确定用户操作后返回指定URL或自身
function confirmCommand(confirmMsg,urlTarget)
{
if (confirm(confirmMsg))
{
return urlTarget;
}
else
return window.location; //myselft no change
}

7.2 多行文本框的值不能为空。
7.3 多行文本框的值不能超过sMaxStrleng
7.4 多行文本框的值不能少于sMixStrleng
7.5 判断单选框是否选择。
7.6 判断复选框是否选择.
7.7 复选框的全选,多选,全不选,反选
7.8 文件上传过程中判断文件类型

6、结合类
6.1 手机号码的验证
6.2 身份证的验证
function isIdCardNo(num)
{
if (isNaN(num)) {alert(“输入的不是数字!”); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{3})$/);
else if (len == 18)
re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\d)$/);
else {alert(“输入的数字位数不对!”); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date(“19”+a[3]+”/“+a[4]+”/“+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+”/“+a[4]+”/“+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert(“输入的身份证号 “+ a[0] +” 里出生日期不对!”); return false;}
}
return true;
}

坚持原创及高品质技术分享,您的支持将鼓励我继续创作!