判断一个变量是否为数字

349 阅读1分钟
<script>
	   /**
     * @description        判断一个变量是否为数字
     * @author              shuxiaokai
     * @create             2020-11-02 09:24
     * @param {any}        variable - 任意类型变量
     * @return {boolean}   如果是数字则返回true,否则返回false
     * @remark
     * null NaN undefined   => false
     * "0.2" "5" => false
     *  Infinity => false
     */
    isNumber(val) {
        if (val == null) {
            return false;
        }
        if (typeof val === "number" && Number.isFinite(val) && !Number.isNaN(val)) {
            return true;
        }
        return false;
    },

    /**
     * @description        判断一个变量是否为类数字(严格意义数字或者可以转换为数字的字符串)
     * @author              shuxiaokai
     * @create             2020-11-02 09:29
     * @param {any}        variable - 任意类型变量
     * @return {boolean}    返回字符串
     * @remark
     * null NaN undefined   => false
     *  Infinity => false
     * "0.2" "5" => true
     */
    isNumberLike(val) {
        if (val.toString().match(/^-?(0\.\d+|[1-9]+\.\d+|[1-9]\d{0,20}|[0-9])$/) || this.isNumber(val)) {
            return true;
        }
        return false;
    },
</script>

转自: github.com/trueleaf/mo…