文章目录

  • ​​产品数量: `^[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"),
});

​​参考​​