JS中Number与Float数据类型正则表达式

最近在练习正则表达式,刚好就顺便整理了一份可能会在项目中用到的正则类,以下主要围绕Number和Float数据类型去整理。

/**
 * 数字与浮点数正则
 * @author DonnyLiu
 * @version 1.0.0
 * @type {{mnNumber: (function(*, *): RegExp), notZeroNInteger: (function(): RegExp), nDecimal: (function(): RegExp), notZeroPInteger: (function(): RegExp), notNFloat: (function(): RegExp), notZeroNumberTwo: (function(): RegExp), pFloat: (function(): RegExp), notPInteger: (function(): RegExp), notNInteger: (function(): RegExp), nFloat: (function(): RegExp), float: (function(): RegExp), number: (function(): RegExp), notPFloat: (function(): RegExp), decimalNumber: (function(): RegExp), mnsNumber: (function(): RegExp), notZeroNumber: (function(): RegExp), mnDecimal: (function(): RegExp), nNumber: (function(*, *=): RegExp)}}
 */
let regExp = {
    /**
     * 是否为数字
     * @returns {RegExp}
     */
    number: function () {
        let reg = /^[0-9]*$/;
        return reg;
    },
    /**
     * 至少n位或者必须为n位的数字
     * @param n
     * @param is_min
     * @returns {RegExp}
     */
    nNumber: function (n, is_min = false) {
        let reg = is_min > 0 ? /^\d{n}$/ : /^\d{n,}$/;
        return reg;
    },
    /**
     * 至少m-n位数字
     * @param m
     * @param n
     * @returns {RegExp}
     */
    mnNumber: function ( m, n) {
        let reg = /^\d{m,n}$/;
        return reg;
    },
    /**
     * 是否为0和非0开头的数字
     * @returns {RegExp}
     */
    notZeroNumber: function () {
        let reg = /^(0|[1-9][0-9]*)$/;
        return reg;
    },
    /**
     * 是否为非0开头的最多带两位小数的数字
     * @returns {RegExp}
     */
    notZeroNumberTwo: function  () {
        let reg = /^(0|[1-9][0-9]*)+(.[0-9]{1,2})?$/;
        return reg;
    },
    /**
     * 是否带有1-2位小数的正数或负数
     * @returns {RegExp}
     */
    decimalNumber: function () {
        let reg = /^(\-)?\d+(\.\d{1,2})?$/;
        return reg;
    },
    /**
     * 是否为正数、负数、和小数
     * @returns {RegExp}
     */
    mnsNumber: function () {
        let reg = /^(\-|\+)?\d+(\.\d+)?$/;
        return reg;
    },
    /**
     * 是否有两位小数点的正实数
     * @returns {RegExp}
     */
    nDecimal: function () {
        let reg = /^[0-9]+(.[0-9]{2})?$/;
        return reg;
    },
    /**
     * 是否有1-3位小数点的正实数
     * @returns {RegExp}
     */
    mnDecimal: function () {
        let reg = /^[0-9]+(.[0-9]{1,3})?$/;
        return reg;
    },
    /**
     * 是否为非0的正整数
     * @returns {RegExp}
     */
    notZeroPInteger: function () {
        let reg = /^[1-9]\d*$/;
        return reg;
    },
    /**
     * 是否为非0的负整数
     * @returns {RegExp}
     */
    notZeroNInteger: function () {
        let reg = /^\-[1-9][]0-9"*$/;
        return reg;
    },
    /**
     * 是否为非负整数
     * @returns {RegExp}
     */
    notNInteger: function () {
        let reg = /^\d+$/;
        return reg;
    },
    /**
     * 是否为非正整数
     * @returns {RegExp}
     */
    notPInteger: function () {
        let reg = /^-[1-9]\d*|0$/;
        return reg;
    },
    /**
     * 是否为非负浮点数
     * @returns {RegExp}
     */
    notNFloat: function () {
        let reg = /^\d+(\.\d+)?$/;
        return reg;
    },
    /**
     * 是否为非正浮点数
     * @returns {RegExp}
     */
    notPFloat: function () {
        let reg = /^((-\d+(\.\d+)?)| (0+(\.0+)?))$^/;
        return reg;
    },
    /**
     * 是否为正浮点数
     * @returns {RegExp}
     */
    pFloat: function () {
        let reg = /^[1-9]\d*\.\d*|0\.\d*[1-9]\d$/;
        return reg;
    },
    /**
     * 是否为非负浮点数
     * @returns {RegExp}
     */
    nFloat: function () {
        let reg = /^([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$/;
        return reg;
    },
    /**
     * 是否为浮点数
     * @returns {RegExp}
     */
    float: function () {
        let reg = /^(-?\d+)(\.\d+)?$/;
        return reg;
    },
};

 

JS中Number与Float数据类型正则表达式

上一篇:RubyMotion之父:Ruby是目前替代Objective-C的最佳iOS开发语言


下一篇:浅入 .NET Core 中的内存和GC知识