Refactor code structure and remove redundant changes
This commit is contained in:
58
utils/validate.ts
Normal file
58
utils/validate.ts
Normal file
@ -0,0 +1,58 @@
|
||||
/**
|
||||
* 只能输入汉字或字母或数字
|
||||
* @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<T = string>(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<T = string>(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
|
||||
}
|
||||
Reference in New Issue
Block a user