日期:2014-05-16  浏览次数:20427 次

传统js验证
js验证
/** 
* 数据验证框架.增加了对id字段检查出错时,直接在对应后面添加一< span>元素来显示错误信息. 
* 
* @author wangzi6hao 
* @version 2.1 
* @description 2009-05-16 
*/  
var checkData = new function() {  
    var idExt="_wangzi6hao_Span";//生成span层的id后缀  
    /** 
    * 得到中英文字符长(中文为2个字符) 
    * 
    * @param {} 
    *            str 
    * @return 字符长 
    */  
    this.length = function(str) {  
        var p1 = new RegExp('%u..', 'g')  
        var p2 = new RegExp('%.', 'g')  
        return escape(str).replace(p1, '').replace(p2, '').length  
    }  
  
    /** 
    * 删除对应id元素 
    */  
    this.remove = function(id) {  
        var idObject = document.getElementById(id);  
        if (idObject != null)  
            idObject.parentNode.removeChild(idObject);  
    }  
  
    /** 
    * 在对应id后面错误信息 
    * 
    * @param id:需要显示错误信息的id元素 
    *            str:显示错误信息 
    */  
    this.appendError = function(id, str) {  
        this.remove(id + idExt);// 如果span元素存在,则先删除此元素  
        var spanNew = document.createElement("span");// 创建span  
        spanNew.id = id + idExt;// 生成spanid  
        spanNew.style.color = "red";  
        spanNew.appendChild(document.createTextNode(str));// 给span添加内容  
        var inputId = document.getElementById(id);  
        inputId.parentNode.insertBefore(spanNew, inputId.nextSibling);// 给需要添加元素后面添加span  
    }  
  
    /** 
    * @description 过滤所有空格字符。 
    * @param str:需要去掉空间的原始字符串 
    * @return 返回已经去掉空格的字符串 
    */  
    this.trimSpace = function(str) {  
        str += "";  
        while ((str.charAt(0) == ' ') || (str.charAt(0) == '???')  
                || (escape(str.charAt(0)) == '%u3000'))  
            str = str.substring(1, str.length);  
        while ((str.charAt(str.length - 1) == ' ')  
                || (str.charAt(str.length - 1) == '???')  
                || (escape(str.charAt(str.length - 1)) == '%u3000'))  
            str = str.substring(0, str.length - 1);  
        return str;  
    }  
  
    /** 
    * 过滤字符串开始部分的空格\字符串结束部分的空格\将文字中间多个相连的空格变为一个空格 
    * 
    * @param {Object} 
    *            inputString 
    */  
    this.trim = function(inputString) {  
        if (typeof inputString != "string") {  
            return inputString;  
        }  
        var retValue = inputString;  
        var ch = retValue.substring(0, 1);  
        while (ch == " ") {  
            // 检查字符串开始部分的空格  
            retValue = retValue.substring(1, retValue.length);  
            ch = retValue.substring(0, 1);  
        }  
        ch = retValue.substring(retValue.length - 1, retValue.length);  
        while (ch == " ") {  
            // 检查字符串结束部分的空格  
            retValue = retValue.substring(0, retValue.length - 1);  
            ch = retValue.substring(retValue.length - 1, retValue.length);  
        }  
        while (retValue.indexOf(" ") != -1) {  
            // 将文字中间多个相连的空格变为一个空格  
            retValue = retValue.substring(0, retValue.indexOf(" "))  
                    + retValue.substring(retValue.indexOf(" ") + 1,  
                            retValue.length);  
        }  
        return retValue;  
    }  
  
    /** 
    * 过滤字符串,指定过滤内容,如果内容为空,则默认过滤 '~!@#$%^&*()-+." 
    * 
    * @param {Object} 
    *            str 
    * @param {Object} 
    *            filterStr 
    * 
    * @return 包含过滤内容,返回True,否则返回false; 
    */  
    this.filterStr = function(str, filterString) {  
        filterString = filterString == "" ? "'~!@#$%^&*()-+.\"" : filterString  
        var ch;  
        var i;  
        var temp;  
        var error = false;// 当包含非法字符时,返回True  
        for (i = 0; i <= (filterString.length - 1); i++) {  
            ch = filterString.charAt(i);  
            temp = str.indexOf(ch);  
            if (temp != -1) {  
                error = true;  
                break;  
            }  
        }  
        return error;  
    }  
  
    this.filterStrSpan = function(id, filterString) {  
        filterString = filterString == "