当前位置: 首页 > 工具软件 > Yup > 使用案例 >

正则,Yup 匹配数量,金额,name..

曹光霁
2023-12-01

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

参考

 类似资料: