﻿//功能說明：頭尾去空白
String.prototype.Trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
}
//功能說明：去左邊空白
String.prototype.LTrim = function() {
    return this.replace(/(^\s*)/g, "");
}
//功能說明：去右邊空白
String.prototype.RTrim = function() {
    return this.replace(/(\s*$)/g, "");
}

//功能說明：檢證函數
//參數說明：str=字串，reg=正則表達式
function IsCheck(str, reg) {
    str = str.Trim();
    if (!reg.test(str)) {
        return false;
    }
    return true;
}

//功能說明：是否是數字(0,1,2,3,4,5,6,7,8,9)組成的字符
//參數說明：字符串
//返 回 值：bool,返回：是數字(0,1,2,3,4,5,6,7,8,9)組成的字符true,否則返回：false
function IsInt(obj) {
    var reg = /^\d+$/;
    return IsCheck(obj, reg)
}

//功能說明：是否符合EMail格式
//參數說明：字符串
//返 回 值：bool,返回：符合EMail格式true,否則返回：false
function IsEMail(str) {
    var reg = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    return IsCheck(str, reg)
}

//功能說明：是否符合時間格式（hh:mm）
//參數說明：字符串
//返 回 值：bool,返回：符合EMail格式true,否則返回：false
function IsTime(TimeString) {
    var reg = /^([0-1][0-9]|[2][0-3]):([0-5][0-9])$/;
    return IsCheck(TimeString, reg)
}

//功能說明：將字串不足指定長度時，向左補指定字串
//參數說明：原字串,指定長度,欲填補的字串
//返 回 值：填補為指定長度之字串
function padLeft(str, length, sign) {
    var str1 = str + '';
    if (str1.length >= length)
        return str1;
    else
        return padLeft(sign + str1, length, sign);
}

//功能說明：判斷民國日期格式
//參數說明：民國日期字串
//返 回 值：true / false
function IsCHTDateFormat(str) {
    var reg = /([0-9]{2,3})([0-9]{2})([0-9]{2})/;
    if (!IsCheck(str, reg)) return false;

    var sDate = padLeft(str, 7, '0');
    var mY = parseInt(sDate.substr(0, 3), 10) + 1911;
    var mM = sDate.substr(3, 2);
    var mD = sDate.substr(5, 2);

    var tempDate;
    var a = new Date(mM + "/" + mD + "/" + mY);
    var y = a.getFullYear();
    var m = a.getMonth() + 1;
    var d = a.getDate();
    var myday = y + "/" + padLeft(m, 2, '0') + "/" + padLeft(d, 2, '0');

    if (myday != mY + "/" + mM + "/" + mD)
        return false;
    else
        return true;
}
//功能說明：比對是否大於系統日期
//參數說明：民國日期字串
//返 回 值：true / false
function CompareDateString(str) {
    var sDate = padLeft(str, 7, '0');
    var a = new Date();
    var y = a.getFullYear() - 1911;
    var m = a.getMonth() + 1;
    var d = a.getDate();
    var today = padLeft(y, 3, '0') + padLeft(m, 2, '0') + padLeft(d, 2, '0');

    if (sDate > today)
        return true;
    else
        return false;
}