1. 程式人生 > >Let's coding world

Let's coding world

1. 長度限制

<p>1. 長度限制</p>
<form name=a onsubmit="return test()"> 
<textarea name="b" cols="40" rows="6" placeholder="不能超過50個字元!"></textarea>
<br /> 
<input type="submit" name="Submit" value="check"> 
</form>
<script language="javascript"> 
function test() 
{ 
if(document.a.b.value.length>50) 
{ 
alert("不能超過50個字元!"); 
document.a.b.focus(); 
return false; 
}
} 
</script>

2. 只能是漢字 

<p>2. 只能是漢字 </p>
<input type="text" onblur="isChinese(this.value)" placeholder="請輸入中文!" />

<script language="javascript"> 
function isChinese(obj){ 
var reg=/^[\u0391-\uFFE5]+$/; 
if(obj!=""&&!reg.test(obj)){ 
alert('必須輸入中文!');
return false; 
} 
}

</script>

以下demo中的HTML的結構與驗證中文結構相似的

3. 只能是英文字母 

//驗證只能是字母
function checkZm(zm){ 
var zmReg=/^[a-zA-Z]*$/; 
if(zm!=""&&!zmReg.test(zm)){ 
alert("只能是英文字母!");
return false; 
} 
} 

4. 只能是數字 

//驗證只能為數字 
function checkNumber(obj){ 
var reg = /^[0-9]+$/; 
if(obj!=""&&!reg.test(obj)){ 
alert('只能輸入數字!'); 
return false; 
} 
} 

5. 只能是英文字母和數字   

//驗證只能是字母和數字 
function checkZmOrNum(zmnum){ 
var zmnumReg=/^[0-9a-zA-Z]*$/; 
if(zmnum!=""&&!zmnumReg.test(zmnum)){ 
alert("只能輸入是字母或者數字,請重新輸入");
return false; 
} 
} 

6. 檢驗時間大小(與當前時間比較)

//檢驗時間大小(與當前時間比較) 
function checkDate(obj){ 
var obj_value=obj.replace(/-/g,"/");//替換字元,變成標準格式(檢驗格式為:'2009-12-10') 
// var obj_value=obj.replace("-","/");//替換字元,變成標準格式(檢驗格式為:'2010-12-10 11:12') 
var date1=new Date(Date.parse(obj_value)); 
var date2=new Date();//取今天的日期 
if(date1>date2){ 
alert("不能大於當前時間!"); 
return false; 
} 
} 

7. 遮蔽關鍵字(這裡遮蔽***和****)  

function test(obj) { 
if((obj.indexOf ("***") == 0)||(obj.indexOf ("****") == 0)){ 
alert("遮蔽關鍵字(這裡遮蔽***和****)!");
return false;} 
} 

8. 兩次輸入密碼是否相同 

function check(){ 
with(document.all){ 
if(input1.value!=input2.value) 
{ 
alert("密碼不一致") 
input1.value = ""; 
input2.value = ""; 
} 
else {
alert("密碼一致");
document.forms[0].submit(); 
}
}
} 

9. 表單項不能為空 

function CheckForm(obj) 
{ 
if (obj.length == 0) { 
alert("姓名不能為空!"); 
return false; 
} 
return true; 
alert("姓名不能為空!"); 
} 

10. 郵箱驗證  

function test(obj){
//對電子郵件的驗證
var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9][email protected]([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
if(!myreg.test(obj))
{
alert('請輸入有效的郵箱!');
return false;
}
}

11. 驗證手機號  

function validatemobile(mobile) 
{ 
if(mobile.length==0) 
{ 
alert('手機號碼不能為空!');
return false; 
} 
if(mobile.length!=11) 
{ 
alert('請輸入有效的手機號碼,需是11位!');
return false; 
} 

var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; 
if(!myreg.test(mobile)) 
{ 
alert('請輸入有效的手機號碼!'); 
return false; 
} 
} 

12. 驗證身份證號碼(需是有效身份證)  

// 建構函式,變數為15位或者18位的身份證號碼
function clsIDCard(CardNo) {
this.Valid=false;
this.ID15='';
this.ID18='';
this.Local='';
if(CardNo!=null)this.SetCardNo(CardNo);
}

// 設定身份證號碼,15位或者18位
clsIDCard.prototype.SetCardNo = function(CardNo) {
this.ID15='';
this.ID18='';
this.Local='';
CardNo=CardNo.replace(" ","");
var strCardNo;
if(CardNo.length==18) {
pattern= /^\d{17}(\d|x|X)$/;
if (pattern.exec(CardNo)==null)return;
strCardNo=CardNo.toUpperCase();
} else {
pattern= /^\d{15}$/;
if (pattern.exec(CardNo)==null)return;
strCardNo=CardNo.substr(0,6)+'19'+CardNo.substr(6,9)
strCardNo+=this.GetVCode(strCardNo);
}
this.Valid=this.CheckValid(strCardNo);
}

// 校驗身份證有效性
clsIDCard.prototype.IsValid = function() {
return this.Valid;
}

// 返回生日字串,格式如下,1981-10-10
clsIDCard.prototype.GetBirthDate = function() {
var BirthDate='';
if(this.Valid)BirthDate=this.GetBirthYear()+'-'+this.GetBirthMonth()+'-'+this.GetBirthDay();
return BirthDate;
}

// 返回生日中的年,格式如下,1981
clsIDCard.prototype.GetBirthYear = function() {
var BirthYear='';
if(this.Valid)BirthYear=this.ID18.substr(6,4);
return BirthYear;
}

// 返回生日中的月,格式如下,10
clsIDCard.prototype.GetBirthMonth = function() {
var BirthMonth='';
if(this.Valid)BirthMonth=this.ID18.substr(10,2);
if(BirthMonth.charAt(0)=='0')BirthMonth=BirthMonth.charAt(1);
return BirthMonth;
}

// 返回生日中的日,格式如下,10
clsIDCard.prototype.GetBirthDay = function() {
var BirthDay='';
if(this.Valid)BirthDay=this.ID18.substr(12,2);
return BirthDay;
}

// 返回性別,1:男,0:女
clsIDCard.prototype.GetSex = function() {
var Sex='';
if(this.Valid)Sex=this.ID18.charAt(16)%2;
return Sex;
}

// 返回15位身份證號碼
clsIDCard.prototype.Get15 = function() {
var ID15='';
if(this.Valid)ID15=this.ID15;
return ID15;
}

// 返回18位身份證號碼
clsIDCard.prototype.Get18 = function() {
var ID18='';
if(this.Valid)ID18=this.ID18;
return ID18;
}

// 返回所在省,例如:上海市、浙江省
clsIDCard.prototype.GetLocal = function() {
var Local='';
if(this.Valid)Local=this.Local;
return Local;
}

clsIDCard.prototype.GetVCode = function(CardNo17) {
var Wi = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var Ai = new Array('1','0','X','9','8','7','6','5','4','3','2');
var cardNoSum = 0;
for (var i=0; i<CardNo17.length; i++)cardNoSum+=CardNo17.charAt(i)*Wi[i];
var seq = cardNoSum%11;
return Ai[seq];
}

clsIDCard.prototype.CheckValid = function(CardNo18) {
if(this.GetVCode(CardNo18.substr(0,17))!=CardNo18.charAt(17))return false;
if(!this.IsDate(CardNo18.substr(6,8)))return false;
var aCity={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:"國外"};
if(aCity[parseInt(CardNo18.substr(0,2))]==null)return false;
this.ID18=CardNo18;
this.ID15=CardNo18.substr(0,6)+CardNo18.substr(8,9);
this.Local=aCity[parseInt(CardNo18.substr(0,2))];
return true;
}

clsIDCard.prototype.IsDate = function(strDate) {
var r = strDate.match(/^(\d{1,4})(\d{1,2})(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[2]-1, r[3]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[2]&&d.getDate()==r[3]);
}


function valiIdCard(idCard){
var checkFlag = new clsIDCard(idCard);
if (!checkFlag.IsValid()) {
alert("輸入的身份證號無效,請輸入真實的身份證號!");
document.getElementByIdx("idCard").focus();
return false;
}else{
alert("是有效身份證!");
}
}

13. 驗證字串是否含有特殊字元

function chksafe(a){
//fibdn = new Array ("'" ,"\\","/",">","<");
fibdn = new Array ("'",">","<","*","%","#","$","}","{","~","`","!","¥","/","?","&","^","(",")");
i=fibdn.length;
j=a.length;
for (ii=0; ii<i; ii++) {
for (jj=0; jj<j; jj++) {
temp1=a.charAt(jj);
temp2=fibdn[ii];
if (temp1==temp2){
return false;
}
}
}
return true;
}

14. 驗證字串是否含有空格

//函式名:chkspc
//功能介紹:檢查是否含有空格
//引數說明:要檢查的字串
//返回值:0:是  1:不是

function chkspc(a)
{
 var i=a.length;
 var j = 0;
 var k = 0;
 while (k<i)
 {
  if (a.charAt(k) != " ")
   j = j+1;
  k = k+1;
 }
 if (j==0)
 {
  return 0;
 }
 
 if (i!=j)
 { return 2; }
 else
 {
  return 1;
 }
}

15. 驗證是否為日期

//函式名:chkdate
//功能介紹:檢查是否為日期
//引數說明:要檢查的字串
//返回值:0:不是日期  1:是日期


function chkdate(datestr)
{
 var lthdatestr
 if (datestr != "")
  lthdatestr= datestr.length ;
 else
  lthdatestr=0;
  
 var tmpy="";
 var tmpm="";
 var tmpd="";
 //var datestr;
 var status;
 status=0;
 if ( lthdatestr== 0)
  return 0


 for (i=0;i<lthdatestr;i++)
 { if (datestr.charAt(i)== '-')
  {
   status++;
  }
  if (status>2)
  {
   //alert("Invalid format of date!");
   return 0;
  }
  if ((status==0) && (datestr.charAt(i)!='-'))
  {
   tmpy=tmpy+datestr.charAt(i)
  }
  if ((status==1) && (datestr.charAt(i)!='-'))
  {
   tmpm=tmpm+datestr.charAt(i)
  }
  if ((status==2) && (datestr.charAt(i)!='-'))
  {
   tmpd=tmpd+datestr.charAt(i)
  }

 }
 year=new String (tmpy);
 month=new String (tmpm);
 day=new String (tmpd)
 //tempdate= new String (year+month+day);
 //alert(tempdate);
 if ((tmpy.length!=4) || (tmpm.length>2) || (tmpd.length>2))
 {
  //alert("Invalid format of date!");
  return 0;
 }
 if (!((1<=month) && (12>=month) && (31>=day) && (1<=day)) )
 {
  //alert ("Invalid month or day!");
  return 0;
 }
 if (!((year % 4)==0) && (month==2) && (day==29))
 {
  //alert ("This is not a leap year!");
  return 0;
 }
 if ((month<=7) && ((month % 2)==0) && (day>=31))
 {
  //alert ("This month is a small month!");
  return 0;
 
 }
 if ((month>=8) && ((month % 2)==1) && (day>=31))
 {
  //alert ("This month is a small month!");
  return 0;
 }
 if ((month==2) && (day==30))
 {
  //alert("The Febryary never has this day!");
  return 0;
 }
 
 return 1;
}

16. 驗證是否含有非數字或字母

//函式名:fucPWDchk
//功能介紹:檢查是否含有非數字或字母
//引數說明:要檢查的字串
//返回值:0:含有 1:全部為數字或字母


function fucPWDchk(str)
{
  var strSource ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  var ch;
  var i;
  var temp;
  
  for (i=0;i<=(str.length-1);i++)
  {
  
    ch = str.charAt(i);
    temp = strSource.indexOf(ch);
    if (temp==-1) 
    {
     return 0;
    }
  }
  if (strSource.indexOf(ch)==-1)
  {
    return 0;
  }
  else
  {
    return 1;
  } 
}

function jtrim(str)
{     while (str.charAt(0)==" ")
          {str=str.substr(1);}      
     while (str.charAt(str.length-1)==" ")
         {str=str.substr(0,str.length-1);}
     return(str);
}

17. 驗證是否為數字

//函式名:fucCheckNUM
//功能介紹:檢查是否為數字
//引數說明:要檢查的數字
//返回值:1為是數字,0為不是數字

function fucCheckNUM(NUM)
{
 var i,j,strTemp;
 strTemp="0123456789";
 if ( NUM.length== 0)
  return 0
 for (i=0;i<NUM.length;i++)
 {
  j=strTemp.indexOf(NUM.charAt(i)); 
  if (j==-1)
  {
  //說明有字元不是數字
   return 0;
  }
 }
 //說明是數字
 return 1;
}

18. 檢查字串長度

//函式名:fucCheckLength
//功能介紹:檢查字串的長度
//引數說明:要檢查的字串
//返回值:長度值

function fucCheckLength(strTemp)
{
 var i,sum;
 sum=0;
 for(i=0;i<strTemp.length;i++)
 {
  if ((strTemp.charCodeAt(i)>=0) && (strTemp.charCodeAt(i)<=255))
   sum=sum+1;
  else
   sum=sum+2;
 }
 return sum;
}

本文是從網上整理下來的資料,僅供研究學習,侵刪!