正则,Yup 匹配数量,金额,name..
原创
©著作权归作者所有:来自51CTO博客作者JediHongbin的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- 产品数量: `^[1-9]*[1-9][0-9]*$`
- 产品价格:
- 小数点后最多两位
产品数量: ^[1-9]*[1-9][0-9]*$
产品价格:
(^[1-9][0-9]*$)|(^0.[0-9]+$)|(^[1-9][0-9]*.[0-9]+$)
小数点后最多两位
/^\d+(\.(\d){1,2})?$/
\d+
表示 以一个或多个数字开头 确保不出现 .1
(\.(\d){1,2})?
表示 有0个或者1个 \.(\d){1,2}
部分出现 这部分作用是 一个 小数点在前面 一个或者2个数字再其后 确保不出现 0.
即小数点后面必须有一个或两个数字 并且 如果没有\.(\d){1,2}
出现则是一个整数
^(?![0].[0-3]).*$
不得小于0.4
名字:英文中间结尾可以有空格:/^[\u4E00-\u9FA5A-Za-z0-9_]+([\s*]|[\u4E00-\u9FA5A-Za-z0-9_])+$/
使用yup
const ValidationSchema = Yup.object().shape({
name: Yup.string().required("Required"),
description: Yup.string()
.min(10, "Minimum length of 10")
.required("Required"),
price: Yup.string()
.matches("^(?![0].[0-3]).*$", "Minimum 0.4")
.matches("^(\\d*)(\\.(\\d){0,2})?$", "Invalid price")
.required("Required"),
// price: Yup.number().test("is-decimal", "invalid decimal", value =>
// (value + "").match(/^\d*(\.\d{0,2})?$/, "22")
// ),
quantity: Yup.string()
.matches("^[0-9]*$", "Invalid quantity")
.required("Required"),
});
参考