`
eksliang
  • 浏览: 598312 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多

     转载请出自出处:http://eksliang.iteye.com/blog/2098985  

     下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...!

       下面这些方法都有一个特点,就是有两份,因为是表单验证,所以提供了两种实现方式,第一种传入的是表单的ID,另一种传入的是表单的值!

        我在下面附件中还附带了这个脚本的源文件!

/**
 *@author Ickes
 *下面很多方法都依赖这个方法
 */
function _$(id){
	return document.getElementById(id);
}
/**
 * @author Ickes
 * 传入一个字符串,删除字符串左右两边的空格
 * @param str<br>
 *        要去除空格的字符串
 * @param type<br>
 *        -如果不传则去掉两端的空格    <br>
 *        -如果为L或者l则去掉左边的空格<br>
 *        -如果为R或者r则去掉右边的空格<br>
 * @return
 */
function trim(str,type){
	 if(type=="" || type==null){
		 return str.replace(/(^\s*)|(\s*$)/g, "");   
	 }else if(type.toLocaleLowerCase()=="r"){
		 return  str.replace(/(\s*$)/g,"");  
	 }else if(type.toLocaleLowerCase()=="l"){
		 return  str.replace(/(^\s*)/g,""); 
	 } 
}

/****
 *@author Ickes
 * 根据id验证文本框中输入的是不是为空
 * 如果为null则返回true
 **/
function checkNull(_id){
	var v=_$(_id).value;
	v=trim(v);
	if(v==''){
		return true;
	}else{
		return false;
	}
}

/**
 *@author Ickes
 * 返回系统当前日期
 * @return
 *      返回格式:yyyy-MM-dd
*/
function getDate(){
	var d;
	var s='';
    d = new Date();                           
    s +=  d.getFullYear() + "-";   
    //月
    var moth=d.getMonth() + 1;
    if(moth<10){
        s += "0"+moth+ "-";    
    }else{
      	s += moth + "-";
    }
    //日
    var date=d.getDate();
    if(date<10){
      	s += "0"+date;  
    } else{
        s += date;  
    }                      
    return(s);                               
}

/**
 * @author Ickes
 * 返回系统当前日期时间
 * @return
 *      返回格式:yyyy-MM-dd hh:mm:ss
*/
function getDateTime(){
	var d;
	var s='';
    d = new Date();                           
    s +=  d.getFullYear() + "-";   
    //月
    var moth=d.getMonth() + 1;
    if(moth < 10){
        s += "0" +moth+ "-";    
    }else{
      	s += moth + "-";
    }
    //日
    var date=d.getDate();
    if(date < 10){
      	s += "0" + date + " ";  
    } else{
        s += date+" ";  
    }  
    //小时
    var hours=d.getHours();
    if(hours < 10){
    	s += "0" +hours+ ":";
    }else{
    	s +=hours+":";
    }
    //分钟
    var minutes = d.getMinutes();
    if(minutes < 10){
    	s += "0" +minutes+ ":";
    }else{
    	s += minutes+ ":";
    }
    //秒钟
    var seconds = d.getSeconds();
    if(seconds < 10){
    	s += "0"+seconds;
    }else{
    	s += seconds;
    }
    return(s);                               
}


/****
 *@author Ickes
 *格式化日期<br>
 *@param str
 *       要格式的字符串<br>
 *@例子:
 *      2012-12-12  <br>转换成<br> 2012/12/12 
 **/
function formatDate(str){
	return str.split("-").join("/");
}
/**
 *@author Ickes
 *比较两个日期的大小,日期的格式为2012-12-12或2012/12/12 <br>
 *@param _startId
 *         开始日期文本框的Id
 *@param _endId
 *         结束日期文本框的Id
 *@retur
 *       如果结束日期大于开始日期则返回true<br>
 **/
function compareDateId(_statId,_endId){
	var startDate = formatDate(_$(_statId).value);
	var endDate   = formatDate(_$(_endId).value);
	var time1=Date.parse(startDate);
	var time2=Date.parse(endDate);
    if(time1 > time2){
		return false;
	}
	return true;
}
/**
 *@author Ickes
 *比较两个日期的大小,日期的格式为2012-12-12或2012/12/12 <br>
 *@param start
 *       开始日期
 *@param end
 *       结束日期
 *@retur
 *       如果结束日期大于开始日期则返回true<br>
 **/
function compareDateStr(start,end){
	var startDate = formatDate(start);
	var endDate   = formatDate(end);
	var time1=Date.parse(startDate);
	var time2=Date.parse(endDate);
    if(time1 > time2){
		return false;
	}
	return true;
}


/****
 *@author Ickes
 * 提交表单
 * @param _id 
 *         要提交表单的id
 * @param url 
 *         路径
 * @param method
 *         补填就是默认:post
 */
function _submit(_id,url,method){
	if(method=="" || method==null){
		method="post";
	}
	_$(_id).method=method;
	_$(_id).action=url;
	_$(_id).submit();
}


 /**
  * @author Ickes
  * 传入一个字符串__返回他的所占用的字节<br>
  * @return
  *       所占用的字节
  */
 function byteLen(s) { 
	var l = 0; 
	var a = s.split(""); 
	for (var i=0;i<a.length;i++) { 
		if (a[i].charCodeAt(0)<299) { 
			l++; 
		} else { 
			l+=2; 
		} 
	} 
		return l; 
}
/****
 * @author Ickes
 * 根据id验证文本框中输入的是不是数值
 * @param
 *       文本框的Id
 * @return
 *        是数值就返回true,空返回false
 **/
function isNumId(_id){
	var value=_$(_id).value;
	//去掉字符串两端的空格
	value=trim(value);
	if(value==''){
        return false;
    }
    var flg=isNaN(value);
	return !flg;
}

/**
 * @author Ickes
 * 根据id验证文本框中输入的是不是数值<br>
 * @param _value
 *        要判断的值
 * @return
 *        是数值就返回true,空返回false
 **/
function isNum(_value){
	//去掉字符串两端的空格
	value=trim(_value);
	if(value==''){
        return false;
    }
    var flg=isNaN(value);
	return !flg;
}


/****
 * @author Ickes
 *根据id验证是否是一个合格的email<br>
 *@param
 *     文本框id属性  
 *@return
 *	   为空时返回false<br>
 *	   如果是一个合法的email则返回true
 **/
function isEmail(_id){
	 var srt=/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
	 var email=_$(_id).value;
	 if(email==null || email==""){
		 return false;
	 }
     if(srt.test(email)) {
         //合法时
         return true;
     }
     else{
         //不合法时
       return false;
     }
}

/**
 *@author Ickes
 *是否是电话号码	
 *@param _id:
 *        文本框中的id属性
 *@return
 *        为空时返回false<br>
 *        如果是一个合法的电话则返回true
 */
function isTelId(_id){
	var str=_$(_id).value;
    if(str==null || trim(str)==""){
    	return false;
    }
    var str	= trim(str);
	var myphone = /^[\-0-9+()\/]{1,32}$/;
    if(myphone.test(str)){
    	return true;
    } 
    return false;
}

/**
 *@author Ickes
 *字符串是否为合法的电话号码	
 *@param str:
 *        要验证的字符串
 *@return
 *        如果是一个合法的电话则返回true
 */
function isTel(str){
    if(str==null||trim(str)==""){
    	return false;
    }
    var str	= trim(str);
	var myphone = /^[\-0-9+()\/]{1,32}$/;
    if(myphone.test(str)){
    	return true;
    } 
    return false;
}

/**
 * @author Ickes
 * 身份证号码验证-支持新的带x身份证
 * @param num:
 *        要验证的字符串
 * @return   
 *        如果是一个合法的身份证则返回true
 */
function isCardNo(num){
	num=trim(num);
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;       
    var checkDate = function(date) {
      return true;
    } 
    
    // initialize
    if ((intStrLen != 15) && (intStrLen != 18)) {
        //error = "输入身份证号码长度不对!";
        //alert(error);
        //frmAddUser.txtIDCard.focus();
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "错误的身份证号码!.";
            //alert(error);
            //frmAddUser.txtIDCard.focus();
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            //error = "身份证中日期信息不正确!.";
            //alert(error);
            return false;
        }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "身份证效验位错误!正确为: " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("身份证日期信息有误!.");
            return false;
        }
    }
    //alert ("Correct.");
    return true;
}

/**
 * @author Ickes
 * 身份证号码验证-支持新的带x身份证
 * @param _id:
 *         文本框的Id属性
 * @return   
 *         如果是一个合法的身份证则返回true
 */
function isCardNoId(_id){
	var num=trim(_$(_id).value);
	if(num==null || num==""){
		return false;
	}
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
    var error;
    var varArray = new Array();
    var intValue;
    var lngProduct = 0;
    var intCheckDigit;
    var intStrLen = num.length;
    var idNumber = num;       
    var checkDate = function(date) {
      return true;
    } 
    
    //身份证号码长度
    if ((intStrLen != 15) && (intStrLen != 18)) {
        return false;
    }    
    // check and set value
    for(i=0;i<intStrLen;i++) {
        varArray[i] = idNumber.charAt(i);
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
            //error = "错误的身份证号码!.";
            return false;
        } else if (i < 17) {
            varArray[i] = varArray[i]*factorArr[i];
        }
    }
    if (intStrLen == 18) {
        //check date
        var date8 = idNumber.substring(6,14);
        if (checkDate(date8) == false) {
            //error = "身份证中日期信息不正确!.";
            //alert(error);
            return false;
        }        
        // calculate the sum of the products
        for(i=0;i<17;i++) {
            lngProduct = lngProduct + varArray[i];
        }        
        // calculate the check digit
        intCheckDigit = 12 - lngProduct % 11;
        switch (intCheckDigit) {
            case 10:
                intCheckDigit = 'X';
                break;
            case 11:
                intCheckDigit = 0;
                break;
            case 12:
                intCheckDigit = 1;
                break;
        }        
        // check last digit
        if (varArray[17].toUpperCase() != intCheckDigit) {
            //error = "身份证效验位错误!正确为: " + intCheckDigit + ".";
            //alert(error);
            return false;
        }
    } 
    else{        //length is 15
        //check date
        var date6 = idNumber.substring(6,12);
        if (checkDate(date6) == false) {
            //alert("身份证日期信息有误!.");
            return false;
        }
    }
    return true;
}
/**
 * @author Ickes
 * 如果身份证是合法的身份证,则返回日期部分的时间对象
 * @param card
 *        身份证号码
 * @return
 *        返回出生日期
 */
function getCardDate(card){
	var date="";
	var year="";
    var moth="";
	var day="";
	if(card.length==18){
		 date=card.substring(6,14);
		 year=date.substring(0,4);
		 moth=date.substring(4,6);
		 day =date.substring(6,8);
		 date=year+"/"+moth+"/"+day;
	}else{
		 date=card.substring(6,12);
		 year="19"+date.substring(0,2);
		 moth=date.substring(2,4);
		 day =date.substring(4,6);
		 date=year+"/"+moth+"/"+day;
	}
	return new Date(date);
}

/****
 * @author Ickes
 * 根据id在指定的文本后面显示错误信息
 **/
function showError(_id,error){
	_$(_id).innerHTML='';
	_$(_id).innerHTML="<font color='red'>"+error+"<font>";
}

 

分享到:
评论

相关推荐

    javascript常用校验脚本

    以下是一些常见的JavaScript验证脚本,用于检查电子邮件地址、移动电话号码、身份证、计算机的IP地址以及邮政编码。 1. 邮箱验证: 验证邮箱地址通常使用正则表达式,例如: ```javascript function f_check_...

    javascript 常用验证函数.doc

    本文将详细介绍JavaScript中的一些常用验证函数,这些函数对于确保用户输入的有效性和提高用户体验至关重要。 一、验证类 1. 数字验证: - 整数验证:`/^(-|\+)?\d+$/.test(str)`,该正则表达式用于检查字符串...

    常用表单验证脚本函数

    这篇博客"常用表单验证脚本函数"主要探讨了JavaScript中用于表单验证的一些关键函数和方法。通过学习这些函数,开发者可以创建更加健壮和用户友好的表单。 1. **required属性**:这是HTML5引入的一个特性,可以在...

    网页常用javascript脚本

    在这个名为“网页常用jsp脚本”的压缩包中,包含了二百多个常用的JSP脚本代码片段,这些都是为了提高网页开发效率和性能而设计的。 首先,我们需要了解JavaScript的基本概念。JavaScript是一种解释型、轻量级、面向...

    常用的javascript脚本、特效

    在本资源包中,你将找到一系列常用的JavaScript脚本和特效,这些都对提升网站用户体验有着重要作用。 首先,JavaScript脚本是网页动态功能的核心,它可以在用户与网页交互时实时更新内容,比如表单验证、图片轮播、...

    QTP常用脚本总结

    以上就是QTP常用脚本的一些关键点,它们在自动化测试中扮演着至关重要的角色,帮助测试人员高效地进行功能验证和回归测试。通过熟练掌握这些技巧,可以提高测试效率,减少手动测试的工作量,确保软件质量。

    常用的表单提交验证脚本

    常用的表单提交javascript验证脚本,有详细的使用说明

    javascript常用函数 javascript 常用库

    一、JavaScript常用函数 1. 数组操作函数 - `push()`: 向数组末尾添加一个或多个元素,并返回新长度。 - `pop()`: 删除并返回数组最后一个元素。 - `shift()`: 删除并返回数组第一个元素。 - `unshift()`: 在...

    javascript过滤危险脚本方法.docx

    JavaScript过滤危险脚本是Web开发中的重要安全措施,主要用于防止跨站脚本攻击(XSS,Cross-Site Scripting)。XSS攻击允许攻击者在用户的浏览器中注入恶意脚本,可能导致敏感数据泄露、用户会话劫持等严重后果。...

    JavaScript客户端脚本语言

    JavaScript语言基础 JavaScript程序流程控制语句 JavaScript函数和事件处理程序 HTML文档对象模型 JavaScript内置的常用对象 用JavaScript脚本对HTML数据的的验证

    javascript常用脚本

    本文将深入解析一份关于JavaScript常用检测脚本的知识点,这份脚本主要包含了一系列用于验证用户输入数据格式的函数,这些函数在前端表单验证中极为常见。 ### 1. `isIP` 函数 此函数用于验证输入的字符串是否符合...

    javascript常用语句 js简单验证 js

    10. **跨浏览器兼容性**:虽然JavaScript是大多数现代浏览器支持的,但在编写验证脚本时,应考虑不同浏览器之间的差异,确保代码能在多种环境中正常运行。 综上所述,JavaScript的常用语句和简单验证在网页开发中...

    javascript常用的页面验证

    以下是一些常用的JavaScript验证方法: 1. **验证是否为空** 这个函数`check_blank`用于检查输入框(`obj`)的值是否为空。如果为空,它会弹出警告提示,并将输入框的值清空。这通常用于必填字段的验证。 ```...

    常用javascript验证功能

    下面我们将深入探讨"常用javascript验证功能",包括取keycode大全、日期格式化及验证以及数字格式验证。 1. Keycode大全: Keycode是键盘按键的唯一标识符,JavaScript可以捕获并处理这些按键事件。通过监听键盘...

    JavaScript脚本大全

    以下是一些常用的验证函数: * 数字验证:可以使用正则表达式来验证数字,如 `/^(-|\+)?\d+$/.test(str)` 用于验证整数。 * 时间验证:可以使用正则表达式来验证时间,如 `/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/` ...

    JavaScript常用验证

    本教程将深入探讨JavaScript中的常用验证技术,帮助开发者确保数据的有效性和安全性。 一、表单验证 1. 邮箱验证:在JavaScript中,我们可以使用正则表达式来检查输入的邮箱格式是否正确。例如,`/^\w+@[a-zA-Z_]+...

    Javascript常用脚本

    在"Javascript常用脚本"这个主题中,我们将会深入探讨几个关键的知识点,包括AJAX调用、弹出窗体、页面加载、键盘事件、字符操作、Select全选以及JavaScript调用后台代码进行常见输入验证。 首先,让我们谈谈AJAX...

    javascript个人常用特效

    在“javascript个人常用特效”这个主题中,我们可以深入探讨JavaScript在创建各种视觉效果和用户交互方面的强大能力。 首先,JavaScript特效涵盖了很多方面,如页面动画、图像处理、时间日期显示、导航菜单、滑块、...

Global site tag (gtag.js) - Google Analytics