<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/**
 * 配列が指定のキーを保持しているかどうかを示す真偽値を返します。
 * 
 * @param {mixed} key キー
 * @param {mixed} search 配列、ハッシュ
 * @returns {Boolean} キーがあるか
 */
function ArrayKeyExists( key, search ) {
    
    if ( !search || ( search.constructor !== Array &amp;&amp; search.constructor !== Object ) ) {
        
        return false;
        
    }
    
    return key in search;
    
}

/**
 * 引数が空かどうかを示します。
 * 
 * @param {mixed} value チェックする値
 * @return {boolean} 空か
 */
function IsEmpty( value ) {

    if ( value == null ) return true;
    if ( value.match( /^(?:[ ]|[　])*$/ ) ) return true;
    return false;

}

/**
 * 自然数かどうかを示します。
 * 
 * @param {mixed} value チェックする値
 * @returns {boolean} 自然数か
 */
function IsNaturalNumber( value ) {
    
    var isNN = value.match( /^\d+$/ );
    return isNN !== null;
    
}

/**
 * 整数かどうかを示します。
 * 
 * @param {mixed} value チェックする値
 * @returns {boolean} 整数か
 */
function IsInteger( value ) {
    
    var isInt = value.match( /^-?\d+$/ );
    return isInt !== null;
    
}

/**
 * 浮動小数点数かどうかを示します。
 * 
 * @param {mixed} value チェックする値
 * @param {boolean} unsigned マイナス無しか
 * @returns {Boolean} 浮動小数点数か
 */
function IsFloat( value, unsigned ) {
    
    var pattern = ( unsigned ) ? /^(?:\d+|\d+\.\d+)$/ : /^-?(?:\d+|\d+\.\d+)$/;
    var isFloat = value.match( pattern );
    return isFloat !== null;
    
}

/**
 * 文字列が日付として妥当かどうかを示します。
 * 
 * @param {string} date 日付文字列
 * @returns {Boolean} 妥当か
 */
function IsDate( date ) {
    
    var objDate = Date.parse( date );
    return !isNaN( objDate );
    
}

/**
 * 時刻フォーマットに合致しているかどうかを示します。
 * 
 * @param {mixed} value チェックする値
 * @param {boolean} hasSec 秒の項目があるか
 * @returns {boolean} 時刻フォーマットに合致しているか
 */
function IsTime( value, hasSec ) {
    
    var isTime = ( hasSec ) ? value.match( /^(?:0?\d+|1\d+|2[0-3]):(?:0?\d+|[1-5]\d+):(?:0?\d+|[1-5]\d+)$/ ) : value.match( /^(?:0?\d+|1\d+|2[0-3]):(?:0?\d+|[1-5]\d+)$/ );
    return isTime !== null;
    
}

/**
 * 二つの日付文字列から日差を求めて返します。
 * 
 * @param {string} from 開始日
 * @param {string} to 終了日
 * @returns {int} 日差
 */
function DeltaDays( from, to ) {
    
    var objFrom = new Date( from );
    var objTo   = new Date( to );
    
    var diff = objTo.getTime() - objFrom.getTime();
    return Math.floor( diff / ( 1000 * 60 * 60 * 24 ) );
    
}</pre></body></html>