常用的js方法,包括表单校验的一些方法

/** 
 * 对JSON对象转换为字符串. 
 * @param {json对象} json 
 * @return {json字符串} 
 */  
function jsonObj2Str(json) {  
        var str = "{";  
        for (prop in json) {  
                str += prop + ":" + json[prop] + ",";  
        }  
        str = str.substr(0, str.length - 1);  
        str += "}";   
        return str;  
}  
  
/** 
 * 将json字符串转换为json对象. 
 * @param {json字符串} jsonstr 
 * @return {json对象} 
 */  
function jsonStr2Obj(jsonstr) {  
         return eval("("+jsonstr+")");  
}  
  
/** 
 * 得到一个元素的left坐标值. 
 * @param {dom对象} obj 
 * @return {位置值} 
 */  
function getLeft(obj){   
        var offset=e.offsetLeft;   
        if(e.offsetParent!=null) offset+=getLeft(e.offsetParent);   
        return offset;   
}   
  
/** 
 * 得到一个元素的绝对位置的top坐标值. 
 * @param {dom对象} obj 
 * @return {位置值} 
 */  
function getTop(obj){   
        var offset=e.offsetTop;   
        if(e.offsetParent!=null) offset+=getTop(e.offsetParent);   
        return offset;   
}   
  
/** 
 * 删除一个字符串的左右空格. 
 * @param {原始字符串} str 
 * @return {删除空格之后的字符串} 
 */  
function  trim(str)  
{    
   return  str.replace(/(^s*)|(s*$)/g,"");    
}  
  
/** 
 * 根据id取出一个元素. 
 * @param {元素id值} str 
 * @return {dom对象} 
 */  
function $(str) {  
        return document.getElementById(str);  
}  
  
/** 
 * 按name获取一个对象. 
 * @param {元素name值} str 
 * @return {根据name返回的第一个对象} 
 */  
function $byName(str) {  
        var arr = document.getElementsByName(str);  
        if (arr)  
                return arr[0];  
        else  
                return null;  
}  
  
/***************以下方法和表单验证相关*************************************************/  
/** 
 * 返回非空字符串,如果有默认值就返回默认字符串. 
 * @param {要进行转换的原字符串} str 
 * @param {默认值} defaultStr 
 * @return {返回结果} 
 */  
function notNull(str, defaultStr) {  
        if (typeof(str) == "undefined" || str == null || str == '') {  
                if (defaultStr)  
                        return defaultStr;  
                else  
                        return '';  
        } else {  
                return str;  
        }  
}    
  
/** 
 * 比较两个日期大小. 
 * @param {较小日期的文本框id} smallDate 
 * @param {较大日期的文本框id} bigDate 
 * @param {出错的提示信息} msg 
 */  
function compareTwoDate(smallDate, bigDate, msg) {  
        var v1 = $(smallDate).value;  
        var v2 = $(bigDate).value;  
        if (v1 >= v2) {  
                alert(msg);  
                                v2.focus();  
                return false;  
        }  
        return true;  
}  
  
/** 
 * 比较两个金额大小的方法. 
 * @param {较小的金额} smallNum 
 * @param {较大的金额} bigNum 
 * @param {出错提示信息} msg 
 * @return {Boolean} 
 */  
function compareTwoNum(smallNum, bigNum, msg) {  
        var v1 = $(smallNum).value;  
        var v2 = $(bigNum).value;   
        if (parseFloat(v1) >= parseFloat(v2)) {  
                alert(msg);  
                                v2.focus();  
                return false;  
        }  
        return true;  
}  
  
/** 
 * 检查文本框的长度是否超出指定长度. 
 * @param {文本id} textId 
 * @param {文本框的最大长度} len 
 * @param {文本框描述内容} msg 
 * @return {有错就返回false,否则返回true} 
 */  
function checkLength(textId, len, msg) {  
        obj = $(textId);  
        str = obj.value;  
        str = str.replace(/[^x00-xff]/g, "**");  
        realLen = str.length;  
        if (realLen > len) {  
                alert("[" + msg + "]" + "长度最大为" + len + "位," + "请重新输入!
注意:一个汉字占2位。");  
                obj.focus();  
                return false;  
        } else  
                return true;  
}  
  
/** 
 * 判断某个文本框不可以为空. 
 * @param {文本框id} textId 
 * @param {文本框描述内容} msg 
 * @return {有错就返回false,否则返回true} 
 */  
function checkIfEmpty(textId, msg) {  
        var textObj = $(textId);  
        var textValue = textObj.value;  
        if (trim(textValue) == '') {  
                alert('[' + msg + ']不得为空!');  
                textObj.focus();  
                return false;  
        } else {  
                return true;  
        }  
}  
  
/** 
 * 判断指定文本框内容必须为邮件. 
 * @param {文本框id} textId 
 * @param {文本框描述} msg 
 * @return {如果是邮件内容就返回true否则返回false} 
 */  
function checkIsMail(textId, msg) {  
        var obj = $(textId);  
        if (!_isEmail(obj.value)) {  
                alert('[' + msg + ']不是合法的邮件地址!');  
                obj.focus();  
                return false;  
        } else  
                return true;  
}  
  
/** 
 * 验证是不是邮件. 
 * @param {要验证的字符串} strEmail 
 * @return {Boolean} 
 */  
function _isEmail(strEmail) {  
        //接下来的验证是否有两个以上的‘.’号,有的话就是错的!  
        var first = strEmail.indexOf('.');    
        if (strEmail.indexOf('@')== -1) {  
                return false;  
        }  
        var tempStr = strEmail.substring(first + 1);  
         if (tempStr.indexOf('.') != -1) {  
                return false;  
        }  
        if (strEmail  
                        .search(/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/) != -1) {  
                return true;  
        } else  
                return false;  
}  
  
/** 
 * 判断某个文本框是否数字. 
 * @param {文本框id} textId 
 * @param {文本框描述内容} msg 
 * @return {Boolean} 
 */  
function checkIsNum(textId, msg) {  
        obj = $(textId);  
        if (isNaN(obj.value)) {  
                alert('[' + msg + ']必须为数字。');  
                obj.focus();  
                return false;  
        } else  
                return true;  
}  
  
/** 
 * 判断某个文本框是否含有非法字符. 
 * @param {文本框的id} textId 
 * @param {文本框描述内容} msg 
 * @return {有错就返回false否则返回true} 
 */  
function checkIsValid(textId, msg) {  
        obj = $(textId);  
        if (!_isValidString(obj.value, '[' + msg + ']不得含有非法字符。')) {  
                obj.focus();  
                return false;  
        }  
        return true;  
}  
  
/** 
 * 判断是不是合法字符串. 
 * @param {要进行判断的字符串} szStr 
 * @param {文本描述} errMsg  
 * @return {合法则返回true否则返回false} 
 */  
function _isValidString(szStr,errMsg) {  
        voidChar = "'"><`~!@#$%^&()()!¥……??“”‘’*";  
        for (var i = 0; i < voidChar.length; i++) {  
                aChar = voidChar.substring(i, i + 1);  
                if (szStr.indexOf(aChar) > -1){  
                        alert(errMsg)  
                        return false;  
                }  
        }  
        return true;  
}   
  

  

原文地址:https://www.cnblogs.com/ipetergo/p/6257584.html