/** * 只能输入汉字或字母或数字 * @param {} arg * @returns {Boolean} */ export function textInputValidate(value?: string) { if (!value) return '' return value.replace(/[^\u4E00-\u9FA5A-Za-z0-9]/gi, '') } /** * 只能输入小数或整数(不可以负数) * @param val 当前值number或string * @returns 返回处理后的 */ export function verifyNumberIntegerAndFloat(val?: number | string) { if (!val) { if (typeof val === 'string') return val as T else return undefined } // 匹配空格 let v = val.toString().replace(/(^\s*)|(\s*$)/g, '') // 只能是数字和小数点,不能是其他输入 v = v.replace(/[^\d.]/g, '') // 以0开始只能输入一个 v = v.replace(/^0{2}$/g, '0') // 保证第一位只能是数字,不能是点 v = v.replace(/^\./g, '') // 小数只能出现1位 v = v.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.') // 小数点后面保留2位 v = v.replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3') // 返回结果 return v as T } /** * 只能输入正整数 * @param val 当前值number或string * @returns 返回处理后的 */ export function verifiyNumberInteger(val?: number | string) { if (!val) { if (typeof val === 'string') return val as T else return undefined } // 匹配空格 let v = val.toString().replace(/(^\s*)|(\s*$)/g, '') // 去掉 '.' , 防止贴贴的时候出现问题 如 0.1.12.12 v = v.replace(/[.]*/g, '') // 去掉以 0 开始后面的数, 防止贴贴的时候出现问题 如 00121323 v = v.replace(/(^0[\d]*)$/g, '0') // 首位是0,只能出现一次 v = v.replace(/^0\d$/g, '0') // 只匹配数字 v = v.replace(/[^\d]/g, '') // 返回结果 return v as T }