
function trim(str) {
    return rTrim(lTrim(str))
}
/**<p>把字符串左边的空格去掉</p>
 * @param str 处理前的字符串
 * @return 处理后的字符串
 */
function lTrim(str) {
    str = str.toString();
    for (var i = 0; i < str.length; i++)
        if (str.charAt(i) != " ")
            return str.substring(i, str.length);
    return "";
}

function rTrim(str){
    str = str.toString();
    for (var i = str.length - 1; i > -1; i--)
        if (str.charAt(i) != " ")
            return str.substring(0, i + 1);
    return "";
}
/**
 * 得到String的长度
 */
function length(str) {
    var length = 0
    for (var i = 0; i < str.length; i++)
        length += str.charCodeAt(i) > 127 ? 2 : 1;
    return length;
}
/*判断空字符
返回 true/false*/
function isBlankShow(obj, alertValue) {
    if (!isBlank(obj.value))
        return true;
    alert(alertValue);
    obj.focus();
    return false;
}
function isBlank(str) {
    for (var i = 0; i < str.length; i++)
        if (str.charAt(i) != "")
            return false;
    return true;
}
function isOneNum(ch) {
    return ch >= '0' && ch <= '9';
}
function isLetterOrDigit(ch) {
    return isOneNum(ch) || isLetter(ch);
}
function isLetter(ch) {
    return isOneLowerCaseChar(ch) || isOneUpperCaseChar(ch);
}
function isOneLowerCaseChar(ch) {
    return ch >= 'a' && ch <= 'z';
}
function isOneUpperCaseChar(ch) {
    return ch >= 'A' && ch <= 'Z';
}
/**<p>判断字符串是否为整数</p>
 * @param str 要判断的字符串
 * @param length 要判断的字符串的长度是否符合要求，不包括'-'符号，此条件可以为空
 * @return 合法返回ture，反之为false
 */
function isIntWithMinus(str, length) {
    if (str.charAt(0) == '-')
        str = str.substring(1, str.length);
    return isInt(str, length);
}
/**<p>判断字符串是否为正整数，不能是负数</p>
 * @param str 要判断的字符串
 * @param length 要判断的字符串的长度是否符合要求
 * @return 合法返回ture，反之为false
 */
function isInt(str, length) {
    if (length != null && str.length != length)
        return false;
    for (var i = 0; i < str.length; i++)
        if (!isOneNum(str.charAt(i)))
            return false;
    return true;
}
/**<p>检查身份证号码是否合法，必须是旧的15位数字或者是新的18位数字</p>
 * @param str 要判断身份证号码
 * @return 合法返回ture，反之为false
 */
function checkIDCard(obj) {
    if (checkIDCardValue(obj.value))
        return true;
    alert("身分号码必须为15位或者18位的数字串，如果是18位的最后一位必须是数字或者字母，请重试。");
    obj.focus();
    return false;
}
function checkIDCardValue(IDCard) {
    var length = IDCard.length;
    if (length != 15 && length != 18)
        return false;
    if (length == 18) {
        if (!isLetterOrDigit(IDCard.charAt(length - 1)))
            return false;
        IDCard = IDCard.substring(0, length - 1);
    }
    return isIntNoMinus(IDCard);
}
/**<p>检查用户名是否合法，不能为空，只能有数字、小写字母、'-'或'_'，且第一个一定要小写字母</p>
 * @param str 要判断的用户名
 * @return 合法返回ture，反之为false
 */
function checkUsernameShow(obj, alertValue) {
    if (checkUsername(obj.value))
        return true;
    if (alertValue)
        alert(alertValue);
    else
        alert("您输入的用户名不合要求，请重试。\n"
              + "用户名不能为空，只能由数字、小写字母、'-'或'_'组成，\n"
              + "且不能超过50个字。例：tom_781230");
    obj.focus();
    return false;
}
function checkUsername(str) {
    if (str.length == 0 || str.length > 50)
        return false;
    for (var i = 0; i < str.length; i++) {
        var temp = str.charAt(i);
        if (!isOneNum(temp) && !isOneLowerCaseChar(temp) && temp != '_' && temp != '-')
            return false;
    }
    return true;
}
/**<p>检查昵称是否合法，可以为空，不能含有字符"\"，不能超过50个字。</p>
 * <p>不能超过50个字。</p>
 * @param nickname 要判断的昵称
 * @return 合法返回ture，反之为false
 */
function checkNicknameShow(obj, alertValue) {
    if (checkNickname(obj.value))
        return true;
    if (alertValue)
        alert(alertValue);
    else
        alert("您输入的昵称不合要求，请重试。\n"
              + "不能含有字符“\\”，“*”, “?”\n"
              + "且不能超过50个字。");
    obj.focus();
    return false;
}
function checkNickname(nickname) {
    if (nickname.length == 0)
        return true;
    if (nickname.length > 50 || nickname.indexOf('\\') != -1 ||
        nickname.indexOf('*') != -1 || nickname.indexOf('\?') != -1)
        return false;
    return true;
}
/**<p>检查密码是否合法，不能为空，不能为中文</p>
 * @param str 要判断的密码
 * @return 合法返回ture，反之为false
 */
function checkPasswordShow(obj, alertValue) {
    if (checkPassword(obj.value))
        return true;
    if (alertValue)
        alert(alertValue);
    else
        alert("您输入的密码不合要求，请重试。\n"
              + "密码不能为空，密码不能使用中文，不能超过50个字。\n"
              + "例：Mdsf_-so9832$*#");
    obj.focus();
    return false;
}
function checkPassword(str) {
    if (str.length == 0 || str.length > 50)
        return false;
    for (var i = 0; i < str.length ; i++)
        if (str.charCodeAt(i) > 127)
            return false;
    return true;
}
/*判断是否是数字（float型）
返回 true/false*/
function isFloat(str) {
    var oneDot = false;
    for (var i = 0; i < str.length; i++) {
        var temp = str.charAt(i);
        if (i == 0 && temp == '-')
            continue;
        if (temp == '.') {
            if (oneDot)
                return false;
            else
                oneDot = true;
        }
        if (!isOneNum(temp))
            return false;
    }
    return true;
}
/**<p>检查mail地址是否合法，'@'字符有且只能有一个，</p>
 * <p>'@'字符前的部分不能为空只能有数字、小写字母、'-'或'_'，且第一个一定要小写字母</p>
 * <p>'@'字符后的部分不能为空只能有数字、小写字母、'.'，且第一个和最后一个不能是'.'</p>
 * @param str 要判断的mail
 * @return 合法返回ture，反之为false
 */
function checkEmail(obj) {
    if (checkMsn(obj.value))
        return true;
    alert("你输入的电子邮件地址有误！请核实！");
    obj.focus();
    return false;
}
/**<p>检查mail地址是否合法，不能超过50个字，'@'字符有且只能有一个，</p>
 * <p>'@'字符前的部分不能为空只能有数字、小写字母、'-'或'_'，且第一个一定要小写字母</p>
 * <p>'@'字符后的部分不能为空且第一个和最后一个不能是'.'</p>
 * @param str 要判断的mail
 * @return 合法返回ture，反之为false
 */
function checkMsn(str) {
    if (str.length > 50)
        return false;
    var pos = str.indexOf('@');
    if (pos == -1 || pos != str.lastIndexOf('@'))
        return false;
    if (!checkUsername(str.substring(0, pos)))
        return false;
    str = str.substring(pos + 1, str.length - 1);
    var posBegin = str.indexOf('.');
    var posEnd = str.lastIndexOf('.');
    if (posBegin == 0 || posBegin == -1 || posEnd == str.length - 1)
        return false;
    return true;
}
function checkIDCardAndBirthShow(IDCardObj, birthObj, alertValue) {
    var IDCard = IDCardObj.value;
    var birth = birthObj.value;
    if (checkIDCardAndBirth(IDCard, birth))
        return true;
    if (alertValue)
        alert(alertValue);
    else
        alert("身份证号中包含生日的部分和生日中的不符，请重试！");
    IDCardObj.focus();
    return false;
}
function checkIDCardAndBirth(IDCard, birth) {
    var year = birth.substring(2, 4);
    var month = birth.substring(5, 7);
    var day = birth.substring(8, 10);
    if (IDCard.length == 18) {
        if (year != IDCard.substring(8, 10))
            return false;
        if (month != IDCard.substring(10, 12))
            return false;
        if (day != IDCard.substring(12, 14))
            return false;
        return true;
    } else if (IDCard.length == 15) {
        if (year != IDCard.substring(6, 8))
            return false;
        if (month != IDCard.substring(8, 10))
            return false;
        if (day != IDCard.substring(10, 12))
            return false;
        return true;
    } else {
        return false;
    }
}
