正则控制'输入'数字格式;可输入小数


/**  * kevin 2021/2/22  * @description 正则控制'输入'数字格式;可输入小数  * @param param  * @param num 保留小数位数只能保留2位,3位,4位,5位 默认2位  * @param negativeBool 是否可以为负数 默认可以为负数  * @param decimalBool 是否可以输入小数 默认可以输入小数  * @returns {string | null}  */ export function checkPrice(param, num, negativeBool, decimalBool) {   // 判断参数是否包含负数   var num_ = ''   if (negativeBool !== false) {     if (param.split('')[0] === '-') { // 判断第一个字符是否有'-'如果有的话则保留       num_ = '-'     }   }   var price = '' + param   if (decimalBool !== false) {     if (num === 3) {       price = price         .replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符         .replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的         .replace(/^\./g, '') // 保证第一个为数字而不是.         .replace('.', '$#$')         .replace(/\./g, '')         .replace('$#$', '.')         .replace(/^(-)*(\d+)\.(\d\d\d).*$/, '$1$2.$3') // 只能输入3个小数     } else if (num === 4) {       price = price         .replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符         .replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的         .replace(/^\./g, '') // 保证第一个为数字而不是.         .replace('.', '$#$')         .replace(/\./g, '')         .replace('$#$', '.')         .replace(/^(-)*(\d+)\.(\d\d\d\d).*$/, '$1$2.$3') // 只能输入4个小数     } else if (num === 5) {       price = price         .replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符         .replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的         .replace(/^\./g, '') // 保证第一个为数字而不是.         .replace('.', '$#$')         .replace(/\./g, '')         .replace('$#$', '.')         .replace(/^(-)*(\d+)\.(\d\d\d\d\d).*$/, '$1$2.$3') // 只能输入4个小数     } else {       price = price         .replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符         .replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的         .replace(/^\./g, '') // 保证第一个为数字而不是.         .replace('.', '$#$')         .replace(/\./g, '')         .replace('$#$', '.')         .replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3') // 只能输入两个小数     }   } else {     price = price       .replace(/^\./g, '') // 保证第一个为数字而不是.       .replace(/\D/g, '')   }   if (price.indexOf('.') < 0 && price !== '') {     // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额     price = parseFloat(price)   }   price = num_ + price   return price }
   本文出自于 转载请注明出处,否则会追究。