背景
最开始写了单个判断小数点后几位的正则,由于多处地方公用,希望能封装起来通用,但是正则判断小数的值是写死的,所以想写成变量的形式,根据传递的值来判断小数位后几位。
操作
正则表达式校验小数点后几位:
const validatorPrecision = (value: number) => {
const reg = /^(\d+)(.\d{0,4})?$/
if (!reg.test(value + '') || value <= 0) {
return Promise.reject(
new Error(t('xxxx')),
)
} else {
return Promise.resolve(new Error())
}
}
上面代码正则是使用字面量形式去创建的,如果使用正则表达式里面使用变量那么需要使用函数创建的方式就是 new Regexp
const precision = 4;
const reg = new RegExp('^(\\d+)(.\\d{0,' + precision + '})?$');