JS中Number與Float資料型別正則表示式
阿新 • • 發佈:2021-01-10
最近在練習正則表示式,剛好就順便整理了一份可能會在專案中用到的正則類,以下主要圍繞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; }, };