JS函式驗證總結

weixin_34377065發表於2009-04-04

//去除左側空格
function LTrim(str)
{
 return str.replace(/^\s*/g,"");
}

//去右空格
function RTrim(str)
{
 return str.replace(/\s*$/g,"");
}

//去掉字串兩端的空格
function trim(str)
{
 return str.replace(/(^\s*)|(\s*$)/g, "");
}

//去除字串中間空格
function CTim(str)
{
 return str.replace(/\s/g,'');
}

//是否為由數字組成的字串
function is_digitals(str)
{
 var reg=/^[0-9]*$/;//匹配整數
 return reg.test(str);     
}

//驗證是否為整數,包括正負數;
function Is_Int(str)
{
 var reg=/^(-|\+)?\d+$/;
 return reg.test(str);
}

//是大於0的整數
function Is_positive_num(str)
{
 var reg=/^\d+$/;
 return reg.test(str);
}

//負整數的驗證
function Is_minus(str)
{
 var reg=/^-\d+$/;
 return reg.test(str);
}

//驗證是否為浮點數(正數)
function IsPositiveFloat(str)
{
 var check_float =new RegExp("^[1-9][0-9]*\.[0-9]+$");//匹配浮點數
 return check_float.exec(str);
}

//是否為固定電話,區號3到4位,號碼7到8位,區號和號碼用"-"分割開,轉接號碼為1到6位,用小括號括起來緊跟在號碼後面
function IsTelphone(str)
{
 var reg=/^[0-9]{3,4}\-\d{7,8}(\(\d{1,6}\))?$/;
    
    if (reg.test(str))
  return true;
    else
        return false;
}

//手機號碼驗證,驗證13系列和158,159幾種號碼,長度11位
function IsMobel(str)
{
 var reg0 = /^13\d{9}$/;
    var reg1 = /^158\d{8}$/;
    var reg2 = /^159\d{8}$/;
 
    return (reg0.test(str)||reg1.test(str)||reg2.test(str))
}

//驗證是否為中文
function IsChinese(str)
{
 var reg=/^[\u0391-\uFFE5]+$/;
 return reg.test(str);
}

//驗證是否為qq號碼,長度為5-10位
function IsQq(str)
{
 var reg=/^[1-9]\d{4,9}$/;
 return reg.test(str);
}

//驗證郵編
function IsPostId(str)
{
 var reg=/^\d{6}$/;
 return reg.test(str);
}

//驗證是否未email
function IsEmail(str)
{
 var reg=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
 return reg.test(str);
}

//驗證IP地址
function IsIp(str)
{
 var check=function(v)
 {
  try
  {
   return (v<=255 && v>=0)
  }catch(x){
    return false;
   }
 }
 var re=str.split(".")
 return (re.length==4)?(check(re[0]) && check(re[1]) && check(re[2]) && check(re[3])):false
}

//身份證驗證
function IsIdnum(str)
{
 var City={11:"北京",12:"天津",13:"河北",14:"山西",15:"內蒙古",21:"遼寧",22:"吉林",23:"黑龍江 ",
     31:"上海",32:"江蘇",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山東",41:"河南",42:"湖北 ",
     43:"湖南",44:"廣東",45:"廣西",46:"海南",50:"重慶",51:"四川",52:"貴州",53:"雲南",54:"西藏 ",
     61:"陝西",62:"甘肅",63:"青海",64:"寧夏",65:"新疆",71:"臺灣",81:"香港",82:"澳門",91:"國外 "}
 var iSum=0
 var info=""
 if(!/^\d{17}(\d|x)$/i.test(str))
  return false;
 str=str.replace(/x$/i,"a");
 if(City[parseInt(str.substr(0,2))]==null)
 {
  alert( "Error:非法地區");
  return false;
 }
 sBirthday=str.substr(6,4)+"-"+Number(str.substr(10,2))+"-"+Number(str.substr(12,2));
 var d=new Date(sBirthday.replace(/-/g,"/"))
 if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
 {
  alert("Error:非法生日");
  return false;
 }
 for(var i = 17;i>=0;i --)
  iSum += (Math.pow(2,i) % 11) * parseInt(str.charAt(17 - i),11)
 if(iSum%11!=1)
 {
  alert("Error:非法證號");
  return false;
 }
 return City[parseInt(str.substr(0,2))]+","+sBirthday+","+(str.substr(16,1)%2?"男":"女")
}

//判斷是否短時間,形如 (13:04:06)
function IsTime(str)
{
 var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
 if (a == null)
 {
  alert('輸入的引數不是時間格式'); return false;
 }
 if (a[1]>24 || a[3]>60 || a[4]>60)
 {
  alert("時間格式不對");
  return false
 }
 return true;
}

//短日期,形如 (2003-12-05)
function IsDate(str)
{
 var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
 if(r==null)
  return false;
 var d= new Date(r[1], r[3]-1, r[4]);
 return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

// 長時間,形如 (2003-12-05 13:04:06)
function IsDateTime(str)
{
 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)
  return false;
 var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
 return (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]);
}

// 判斷字元全部由a-Z或者是A-Z的字字母組成
function Is_Letters(str)
{
 var reg=/[^a-zA-Z]/g;
 return reg.test(str);
}

// 判斷字元由字母和數字組成。
function Is_letter_num(str)
{
 var reg=/[^0-9a-zA-Z]/g;
 return reg.test(str);
}

//判斷字元由字母和數字,下劃線,點號組成.且開頭的只能是下劃線和字母
function IsUserName(str)
{
 var reg=/^([a-zA-z_]{1})([\w]*)$/g;
 return reg.test(str);
}

// 判斷瀏覽器的型別
function GetBrowseType()
{
 alert(window.navigator.appName);
}

//判斷ie的版本
function Get_Eidition()
{
 alert(window.navigator.appVersion);
}

//判斷客戶端的解析度
function GetResolution()
{
 alert(window.screen.height);
 alert(window.screen.width);
}

// 判斷使用者名稱是否為數字字母下滑線 
function notchinese(str)
{
 var reg=/[^A-Za-z0-9_]/g
    if (reg.test(str))
 {
      return (false);
    } 
 else
 {
  return(true);
    }
}   
     
//驗證url
function IsUrl(str)
{
 var reg=/^(http\:\/\/)?([a-z0-9][a-z0-9\-]+\.)?[a-z0-9][a-z0-9\-]+[a-z0-9](\.[a-z]{2,4})+(\/[a-z0-9\.\,\-\_\%\?\=\&]?)?$/i;
 return reg.test(str);
}

//判斷是否含有漢字       
function ContentWord(str)
{
 if (escape(str).indexOf("%u")!=-1)
  return true;
 else
  return false;
}

//頁面裡回車到下一控制元件的焦點
function Enter2Tab(e)
{
    try
    {
        var ōb = IsFireFox ? e.target : event.srcElement;
        if(ob.tagName == "INPUT" &&(ob.type == "text" ||ob.type == "password" ||ob.type == "checkbox"
         ||ob.type == "radio") ||ob.tagName == "SELECT")
        {
            var key = IsFireFox ? e.which : event.keyCode;
            if (key == 13)
            {
                if (IsFireFox)
                {
                    event.which = 9;
                }
                else
                {
                    event.keyCode = 9;
                }
            }
        }
    }
    catch(E){}
}

/**
* 初始化一個xmlhttp物件
*/
function InitAjax()
{
 var ajax=false;
  try
 {
    ajax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e)
  {
     try
   {
      ajax = new ActiveXObject("Microsoft.XMLHTTP");
     } catch (E)
    {
       ajax = false;
      }
   }
  if (!ajax && typeof XMLHttpRequest!='undefined')
 {
    ajax = new XMLHttpRequest();
  }
  return ajax;
}

function callback(ajax)
{
 //如果執行是狀態正常,那麼就把返回的內容賦值給上面指定的層
  if (ajax.readyState == 4 && ajax.status == 200)
 {   
   show.innerHTML = ajax.responseText;
  }
 else
 {
  alert("there was a problem retrieving the xml data:"+ajax.statusText);
 }
}

function getNews(newsID)
{
 //如果沒有把引數newsID傳進來
 if (typeof(newsID) == 'undefined')
 { 
  return false;
 }
 //需要進行Ajax的URL地址
 var url = "show.php?id="+ newsID;
 //獲取新聞顯示層的位置
 var show = document.getElementById("show_news");
 //例項化Ajax物件
 var ajax = InitAjax();

 //使用Get方式進行請求
 ajax.open("GET",url,true);
 //獲取執行狀態
 ajax.onreadystatechange =function() {
 if (ajax.readyState == 4 && ajax.status == 200)
 {   
   show.innerHTML = ajax.responseText;
  }
}
 //傳送空
 ajax.send(null);
}

//_______全選擇__________
function SelectAll()
{
    var empty;
    var f = document.forms[0];
    for (var i = 0; i < f.length; i++)
    {
        empty = f[i];
        if (empty.type == "checkbox" && empty.disabled == false)
            empty.checked = true;
    }
}

//__________返選擇_________
function SelectReverse()
{
    var empty;
    var f = document.forms[0];
    for (var i = 0; i < f.length; i++)
    {
        empty = f[i];
        if (empty.type == "checkbox" && empty.disabled == false)
  if(empty.checked == true)
  {
     empty.checked = false;
  }
  else
  {
     empty.checked = true;
  }
    }
}

相關文章