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