求改正或者指教js正则一枚

发布于 2022-08-31 20:49:00 字数 274 浏览 11 评论 0

场景

现在要限制用户输入,只能匹配 0 到 4.9 之间的数字。

只能一位小数,当然 1, 2, 3...是可以的

现在

/^[0-4]{1}\.{0,1}\d{0,1}$/

求改进

现在这个正则的问题就是。。。。。它能匹配像 12, 23, 45...这样的

求指教 = =!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凹づ凸ル 2022-09-07 20:49:00

首先 {1} 可以不写, 然后 {0,1} 可以改成 ?.

然后再说问题. 你是想匹配整数或小数, 我们取简单的场景, 就是必须是 x 或者 x.y 这种情况才合法, .y 或者 x. 这种都不合法.

那很容易判断, 如果有小数, 就一定有点. 这个时候可以把小数和点放到一个 group 里限制次数.

^[0-4](\.\d)?$

但是因为我们不需要 capture \.\d 这个 group, 只需要测试匹配, 所以可以在括号中加入 ?:.

^[0-4](?:\.\d)?$

就这样.

水染的天色ゝ 2022-09-07 20:49:00
js'0 0.9 1.1 3 4.9 5 -1 5.1 12 21'.split(' ').map(function(n) { return /^[0-4](\.\d)?$/.test(n); })
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文