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

本文介绍了一种使用正则表达式验证产品名称、价格及数量有效性的方法,并通过yup库实现验证逻辑。重点关注产品价格的小数点后位数限制及最小价格限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值