常用JS验证函数以及正则表达式




使用说明:正确匹配返回true,否则返回false 
---------------------------------------------------------------------- 
函数列表: 
CheckInput() 控件验证 
IsLen() 判断长度 
IsUsername() 验证用户名 
IsPassword() 验证密码 
IsEn() 验证是否为字母 
IsCn() 验证是否为汉字 
IsEmail() 验证E-mail 
IsMSN() 验证MSN 
IsQQ() 验证QQ号 
IsHttpUrl() 验证网址 
IsDoMainName() 验证域名 
IsIpv4() 验证IPV4地址 
IsImgURL() 验证图片地址 
IsCellPhone() 验证手机号码 
IsPhone() 验证固定电话 
IsZipCode() 验证邮编 
IsIdCard() 验证身份证号码 
IsDateFormat() 验证日期格式YY-MM-DD 
IsRangeTime() 验证时间格式HH:MM:SS 
IsMoney() 验证金额格式 
IsInt() 验证数字,并判断其范围 
IsSearch() 验证关键字 
----------------------------------------------------------------------- 
使用例子: 
<script language="javascript"> 
var email="username"; 
alert(email.IsEmail()); 
</script> 

<input name="email" type="text" id="email" value="wqb7156#163.com" /> 
<div id="Megdiv"></div> 
<script language="javascript"> 
if(!CheckInput("email","email","邮箱","notnull",'IsEmail',0,0,"Megdiv")) return flase; 
</script> 
----------------------------------------------------------------------*/ 
//控件验证 CheckInput(Id,Name,Title,Null,Format, LengthMin, LengthMax,Megdiv) 
function CheckInput() 

var Id=arguments[0]; 
var Name=arguments[1]; 
var Title=arguments[2]; 
var Null=arguments[3].toLowerCase(); 
var Format=arguments[4] 
var LengthMin=arguments[5] 
var LengthMax=arguments[6]; 
var Megdiv=(arguments[7]==null)?Id+'_meg':arguments[7]; 

var obj=document.getElementById(Id); 
var Name=document.getElementsByName(Name); 
var value=obj.value.replace(/(^/s*)|(/s*$)/g, ""); 
var type=obj.type.toLowerCase(); 
var showdiv=document.getElementById(Megdiv); 


//是否为空,如不为空判断长度范围 
if(Null=='notnull') 

switch(type){ 
//文件域 
case"file": 
if( value=='' ) 

showdiv.innerHTML='×请选择你要上传的图片'; 
obj.focus(); 
return false; 

//文本框 
case"text": 
if( value=='' ) 

showdiv.innerHTML='×'+Title+'不能为空'; 
obj.focus(); 
return false; 

break; 
//文本域 
case"textarea": 
if( value=='' ) 

showdiv.innerHTML='×'+Title+'不能为空'; 
obj.focus(); 
return false; 

break; 
//密码框 
 case"password": 
if( value=='' ) 

showdiv.innerHTML='×'+Title+'不能为空'; 
obj.focus(); 
return false; 

//确认密码 
if(Id.substr(Id.length-2,2)=='re') 

var pwd=Id.substr(0,Id.length-3); 
if(document.getElementById(pwd).value!=value) 

showdiv.innerHTML='×'+'两次输入的密码不相同'; 
obj.focus(); 
return false; 


break; 
//单选按钮 
case"radio": 
var flag=false; 
for (var i=0;i<Name.length;i++) 

if(Name.checked) flag=true; 
//break; 

if(!flag) 

showdiv.innerHTML='×'+Title+'不能为空'; 
return false; 

break; 
//复选框 
case"checkbox": 
var flag=false; 
for (var i=0;i<Name.length;i++) 

if(Name.checked) flag=true; 
//break; 

if(!flag) 

showdiv.innerHTML='×'+Title+'不能为空'; 
return false; 

break; 
//列表框 
case"select-one": 
if(obj.selectedIndex==0) 

showdiv.innerHTML='×'+Title+'不能为空'; 
obj.focus(); 
return false; 

break; 

}else 

//确认密码 
if(type=='password'&&Id.substr(Id.length-2,2)=='re') 

var pwd=Id.substr(0,Id.length-3); 
if(document.getElementById(pwd).value!=value) 

showdiv.innerHTML='×'+'两次输入的密码不相同'; 
obj.focus(); 
return false; 



//长度判断 
if(value!=''&&!value.IsLen(LengthMin,LengthMax)) 

showdiv.innerHTML='×'+Title+'长度必须在'+LengthMin+'和'+LengthMax+'之间'; 
obj.focus(); 
return false; 

//验证数据格式 
if(Format!='nocheck'&&value!='') 

//选择函数 
switch(Format) 

case "IsLen": Format=value.IsLen(); break; 
case "IsUsername": Format=value.IsUsername(); break; 
case "IsPassword": Format=value.IsPassword(); break; 
case "IsEn": Format=value.IsEn(); break; 
case "IsCn": Format=value.IsCn(); break; 
case "IsEmail": Format=value.IsEmail(); break; 
case "IsMSN": Format=value.IsMSN(); break; 
case "IsQQ": Format=value.IsQQ(); break; 
case "IsHttpUrl": Format=value.IsHttpUrl(); break; 
case "IsDoMainName": Format=value.IsDoMainName(); break; 
case "IsIpv4": Format=value.IsIpv4(); break; 
case "IsImgURL": Format=value.IsImgURL(); break; 
case "IsCellPhone": Format=value.IsCellPhone(); break; 
case "IsPhone": Format=value.IsPhone(); break; 
case "IsZipCode": Format=value.IsZipCode(); break; 
case "IsIdCard": Format=value.IsIdCard(); break; 
case "IsDateFormat": Format=value.IsDateFormat(); break; 
case "IsRangeTime": Format=value.IsRangeTime(); break; 
case "IsMoney": Format=value.IsMoney(); break; 
case "IsInt": Format=value.IsInt(); break; 
case "IsSearch": Format=value.IsSearch(); break; 

if(!Format) 

showdiv.innerHTML='×'+Title+'格式不正确'; 
obj.focus(); 
return false; 


showdiv.innerHTML="√"; 
return true; 


//判断长度(长度不限为0) 
String.prototype.IsLen = function() 

var isRightFormat=false; 
var minnum=arguments[0]?arguments[0]:0; 
var maxnum=arguments[1]?arguments[1]:0; 
isRightFormat = (minnum == 0 && maxnum ==0 ? true : (calculate_byte(this) >= minnum && calculate_byte(this) <= maxnum ? true : false)); 
return isRightFormat; 


//验证用户名 
String.prototype.IsUsername = function() 

var myReg = /^[0-9a-zA-Z/-]+$/; 
if(myReg.test(this)) return true; 
return false; 

//验证密码 
String.prototype.IsPassword = function() 

var myReg = /^[0-9a-zA-Z]+$/; 
if(myReg.test(this)) return true; 
return false; 

//验证是否为字母 
String.prototype.IsEn = function() 

var myReg = /^[a-zA-Z]+$/; 
if(myReg.test(this)) return true; 
return false; 


//验证是否为汉字 
String.prototype.IsCn = function() 

var myReg =/^[/u0391-/uFFE5]+$/; 
if(myReg.test(this)) return true; 
return false; 


//验证E-mail 
String.prototype.IsEmail = function() 

var myReg = /([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)/; 
if(myReg.test(this)) return true; 
return false; 


//验证MSN 
String.prototype.IsMSN = function() 

var myReg = /([/w-/.]+)@((/[[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.)|(([/w-]+/.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(/]?)/; 
if(myReg.test(this)) return true; 
return false; 


//验证QQ号码 
String.prototype.IsQQ = function() 

var myReg =/^[1-9]/d{4,9}$/; 
if(myReg.test(this)) return true; 
return false; 

//验证网址 
String.prototype.IsHttpUrl = function() 

var myReg =/^http:[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$/; 
if(myReg.test(this)) return true; 
return false; 


//验证域名 
String.prototype.IsDoMainName = function() 

var myReg =/^[0-9a-zA-Z]([0-9a-zA-Z/-]+/.){1,3}[a-zA-Z]{2,4}?$/; 
if(myReg.test(this)) return true; 
return false; 


//验证IPV4地址 
String.prototype.IsIpv4 = function() 

var myReg =/^(2[0-5]{2}|1?[0-9]{1,2}).(2[0-5]{2}|1?[0-9]{1,2}).(2[0-5]{2}|1?[0-9]{1,2}).(2[0-5]{2}|1?[0-9]{1,2})$/; 
if(myReg.test(this)) return true; 
return false; 


//验证图片地址(不支持由CGI动态生成的图片) 
String.prototype.IsImgURL = function() 

var myReg =/^/.(jpeg|jpg|gif|bmp|png|pcx|tiff|tga|lwf)$/; 
if(myReg.test(this)) return true; 
return false; 


//验证手机号码 
String.prototype.IsCellPhone = function() 

var myReg =/^((/(/d{3}/))|(/d{3}/-))?1[3,5]/d{9}$/; 
if(myReg.test(this)) return true; 
return false; 


//验证固定电话 
String.prototype.IsPhone = function() 

var myReg =/^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$/; 
if(myReg.test(this)) return true; 
return false; 


//验证邮编 
String.prototype.IsZipCode = function() 

var myReg =/[0-9]{6}/; 
if(myReg.test(this)) return true; 
return false; 


//验证身份证号码 
String.prototype.IsIdCard = function() 

var myReg =/(^([/d]{15}|[/d]{18}|[/d]{17}[xX]{1})$)/; 
if(myReg.test(this)) return true; 
return false; 


//验证日期格式YY-MM-DD 
String.prototype.IsDateFormat = function() 

var myReg =/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/; 
if(myReg.test(this)) return true; 
return false; 


//验证时间格式HH:MM:SS 
String.prototype.IsRangeTime = function() 

var myReg =/^(/d{2}):(/d{2}):(/d{2})$/; 
if(myReg.test(this)) return true; 
return false; 


//验证金额格式 
String.prototype.IsMoney = function() 

var myReg =/^[0-9]{1,8}[.]{0,1}[0-9]{0,2}$/; 
if(myReg.test(this)) return true; 
return false; 


//字验证数字格式并判断数字的围(min:最小值;max:最大值.) 
String.prototype.IsInt = function() 

var isRightFormat=false; 
var minnum=arguments[0]?arguments[0]:0; 
var maxnum=arguments[1]?arguments[1]:0; 
var myReg =/^[-/+]?/d+$/; 
if(myReg.test(this)) 

isRightFormat = (minnum == 0 && maxnum ==0 ? true : (this > minnum && this < maxnum ? true : false)); 

return isRightFormat; 


//验证搜索关键字 
String.prototype.IsSearch = function() 

var myReg=/^[/|/"/'<>,.*&@#$;:!^()]/; 
if(myReg.test(this)) return false; 
return true; 


//js准确计算字符串长度 
function calculate_byte( sTargetStr ) { 
var sTmpStr, sTmpChar; 
var nOriginLen = 0; 
var nStrLength = 0; 

sTmpStr = new String(sTargetStr); 
nOriginLen = sTmpStr.length; 

for ( var i=0 ; i < nOriginLen ; i++ ) { 
sTmpChar = sTmpStr.charAt(i); 

if (escape(sTmpChar).length > 4) { 
nStrLength += 2; 
} else if (sTmpChar!='/r') { 
nStrLength ++; 



return nStrLength; 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值