首页 > Web开发 > 详细

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

时间:2021-01-10 22:20:41      阅读:81      评论:0      收藏:0      [点我收藏+]

最近在练习正则表达式,刚好就顺便整理了一份可能会在项目中用到的正则类,以下主要围绕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数据类型正则表达式

原文:https://www.cnblogs.com/DonnyLiu/p/14252928.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!