前端一些常用的check函数

以前做对日外包是用到的一些前端校验函数

/**

 * 文字列の長さを取得
 */
String.prototype.Blength = function() {
    var arr = this.match(/[^\u0000-\u00FF\uFF61-\uFF9F\uFFE8-\uFFEE]/ig);
    return arr == null ? this.length : this.length + arr.length;
}

/**
 * 全角カナと数字以外チェック
 * @param {String} inputStr 入力した文字列
 */
function isZenkakuigai(inputStr) {
    if (inputStr.length > 0) {
        var iLen = inputStr.length;
        for (var iCount = 0; iCount < iLen; iCount++) {
            var    blnFlg    =    false;
            sAt = inputStr.charAt(iCount);
            for(var j=0; j<KANA_FIELD_CHECK_TABLE.length; j++){
                if(sAt == KANA_FIELD_CHECK_TABLE[j]){
                    blnFlg = true;
                    break;
                }
            }
            if(blnFlg == false){
                return false;
            }
        }
        return true;
    }
    
    return false;
}

var KANA_FIELD_CHECK_TABLE = [
    '0','1','2','3','4','5','6','7','8','9',
    'A','B','C','D','E','F','G','H','I','J',
    'K','L','M','N','O','P','Q','R','S','T',
    'U','V','W','X','Y','Z',
    'a','b','c','d','e','f','g','h','i','j',
    'k','l','m','n','o','p','q','r','s','t',
    'u','v','w','x','y','z',
    'ァ','ィ','ゥ','ェ','ォ','ャ','ュ','ョ','ッ',
    'ー',
    'ア','イ','ウ','エ','オ','カ','キ','ク','ケ','コ',
    'サ','シ','ス','セ','ソ','タ','チ','ツ','テ','ト',
    'ナ','ニ','ヌ','ネ','ノ','ハ','ヒ','フ','ヘ','ホ',
    'マ','ミ','ム','メ','モ','ヤ','ユ','ヨ','ラ','リ',
    'ル','レ','ロ','ワ','ヲ','ン',
    'ガ','ギ','グ','ゲ','ゴ','ザ','ジ','ズ','ゼ','ゾ',
    'ダ','ヂ','ヅ','デ','ド','バ','ビ','ブ','ベ','ボ','ヴ',
    'パ','ピ','プ','ペ','ポ',
    '.','。',',','・','゛','゜','「','」','(',')','[',']','{','}','〔','〕',
    '《','》','『','』','【','】','-',
    'Ⅰ','Ⅱ','Ⅲ','Ⅳ','Ⅴ','Ⅵ','Ⅶ','Ⅷ','Ⅸ','Ⅹ',
    ' ',' '
];

/**
 * 電話番号チェック
 * @param {String} inputStr 入力した文字列
 */
function isPhoneNumber(inputStr) {
    if (inputStr.length > 0) {
        var phoneStr = "0123456789-";
        for (var i = 0; i < inputStr.length; i++) {
            var phoneChar = inputStr.substring(i, i + 1);
            if (phoneStr.indexOf(phoneChar) == -1) {
                return false;
            }
        }
    }
    
    return true;
}

/**
 * バイトチェック
 * @param {String} inputStr 入力した文字列
 */
function isByte(inputStr) {
    if (inputStr.length > 0) {
        if (!isAllDigits(inputStr)) {
            return false;

        } else {

            var iValue = parseInt(inputStr);
            if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
                return false;
            }
        }
    }
    
    return true;
}

/**
 * 整数チェック
 * @param {String} inputStr 入力した文字列
 */
function isInteger(inputStr) {
    if (inputStr.length > 0) {
        if (!isAllDigits(inputStr)) {
            return false;

        } else {

            var iValue = parseInt(inputStr);
            if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                return false;
            }
        }
    }
    
    return true;
}

/**
 * 長整数チェック
 * @param {String} inputStr 入力した文字列
 */
function isLong(inputStr) {
    if (inputStr.length > 0) {
        if (!isAllDigits(inputStr)) {
            return false;

        } else {

            var iValue = parseInt(inputStr);
            if (isNaN(iValue) || !(iValue >= -9223372036854775808 && iValue <= 9223372036854775807)) {
                return false;
            }
        }
    }
    
    return true;
}

/**
 * 数字型チェック
 * @param {String} argvalue 入力した数字
 */
function isAllDigits(argvalue) {
    argvalue = argvalue.toString();
    var validChars = "0123456789";
    var startFrom = 0;
    if (argvalue.substring(0, 2) == "0x") {
        validChars = "0123456789abcdefABCDEF";
        startFrom = 2;
    }
    else if (argvalue.charAt(0) == "-") {
        startFrom = 1;
    }

    for (var n = startFrom; n < argvalue.length; n++) {
        if (validChars.indexOf(argvalue.substring(n, n + 1)) == -1)
            return false;
    }
    
    return true;
}

/**
 * 禁止文字チェック
 * @param {String} inputStr 入力した文字列
 */
function hasForbiddenChar(inputStr) {
    if (inputStr.length == 0) {
        return false;
    }
    var iLen = inputStr.length;
    for (var iCount = 0; iCount < iLen; iCount++) {
        sAt = inputStr.charAt(iCount);
        if (forbiddenChar.indexOf(sAt) != -1) {
            return true;
        }
    }
    return false;
}

/**
 * 半角カナチェック
 * @param {String} inputStr 入力した文字列
 */
function hasHankakuKana(inputStr) {
    if (inputStr.length == 0) {
        return false;
    }
    var iLen = inputStr.length;
    for (var iCount = 0; iCount < iLen; iCount++) {
        sAt = escape(inputStr.charAt(iCount));
        if ("%uFF61" <= sAt && sAt <= "%uFF9D") {
            return true;
        }
    }
    return false;
}

/**
 * エラーメッセージを表示する
 * @param {String} errFlg      エラーフラグ
 * @param {String} inputComId    検証するコンポーネントID
 * @param {String} chkErrComId エラーメッセージを表示するコンポーネントID
 * @param {String} msg         エラーメッセージ
 */
function dispMsg(errFlg, inputComId, chkErrComId, msg) {
    jQuery("#" + inputComId).css("backgroundColor","");
    if (errFlg) {
        jQuery("#" + inputComId).addClass('txt_error_red');
        jQuery("#" + chkErrComId).text(msg);
    } else {
        jQuery("#" + inputComId).removeClass('txt_error_red');
        jQuery("#" + chkErrComId).text("");
    }
    
    return errFlg;
}

/**
 * nullチェック
 * @param {String} s 入力した文字列
 */
function isNull(s) {
    if (s == null || s == "") {
        return true;
    }
    
    var regu = /^[ ]+$/;
    var re = new RegExp(regu);
    return re.test(s);
}

/**
 * 最大長さチェック
 * @param {String} s 入力した文字列
 */
function isMaxLength(s, maxLen) {
    if (s == "") {
        return false;
    }
    
    if (s.Blength() > maxLen) {
        return true;
    } else {
        return false;
    }
}

/**
 * 文字数チェック
 * @param {String} s 入力した文字列
 */
function isFixedLength(s, fixedLen) {
    if (s.Blength() == fixedLen) {
        return true;
    } else {
        return false;
    }
}

/**
 * 範囲チェック
 * @param {String} s 入力した文字列
 * @param {String} min 最小値
 * @param {String} max 最大値
 */
function isNotRange(s, min, max) {
    if (isNumber(s) && isNumber(min) && isNumber(max)) {
        if (Number(s) >= Number(min) && Number(s) <= Number(max)) {
            return false;
        } else {
            return true;
        }
    }
    
    return true;
}

/**
 * 以上範囲チェック
 * @param {String} s 入力した文字列
 * @param {String} min 最小値
 */
function isLowerRange(s, min) {
    if (isNumber(s) && isNumber(min)) {
        if (Number(s) < Number(min)) {
            return true;
        } else {
            return false;
        }
    }
    
    return false;
}

/**
 * 英数字チェック
 * @param {String} s 入力した文字列
 */
function isNumberOrLetter(s) {
    var regu = /^[0-9a-zA-Z]+$/;
    var re = new RegExp(regu);
    return re.test(s);
}

/**
 * ダブル型チェック
 * @param {String} s 入力した文字列
 */
function isDouble(s) {
    var regu = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/;
    var re = new RegExp(regu);
    return re.test(s);
}

/**
 * 数字型チェック
 * @param {String} s 入力した文字列
 */
function isNumber(s) {
    try {
        if (isNaN(Number(s))) {
            return false;
        }
        return true;
    } catch (e) {
        return false;
    }
}

/**
 * 電話番号チェック
 * @param {String} s 入力した電話番号
 */
function isTel(s) {
    var regu = /^((\d{2}-\d{4}-\d{4})|(\d{3}-\d{4}-\d{4}))$/;
    var re = new RegExp(regu);
    return re.test(s);
}


/**
 * メールアドレスチェック
 * @param {String} emailStr 入力した文字列
 */
function isMail(emailStr) {
    if (emailStr.length == 0) {
        return true;
    }
    return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d)|(([a-z]|\d)([a-z]|\d|-|\.|_|~)*([a-z]|\d)))\.)+(([a-z])|(([a-z])([a-z]|\d|-|\.|_|~)*([a-z])))$/i.test(emailStr);
}

/**
 * タイムチェック
 * @param {String} s 入力した文字列
 */
function isMaskTime(s) {
    if (s == null || s == "" || s.length != 5 || s.indexOf(":") == -1) {
        return false;
    }
    
    try {
        var hour = Number(s.substring(0, 2));
        var minter = Number(s.substring(3));
       
        if (isNaN(hour) || hour < 0 || hour >= 24 || isNaN(minter) || minter < 0 || minter >= 60) {
            return false;
        }
    } catch (e) {
        return false;
    }
    
    return true;
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值