gpt4 book ai didi

html - float(x,y) 的正则表达式可能吗?

转载 作者:行者123 更新时间:2023-12-05 03:55:41 24 4
gpt4 key购买 nike

在下文中,float(x,y) 表示具有 xdigitsy 的数字小数点。

我正在尝试对 HTML 输入字段进行客户端验证。该字段对应于数据类型为 float(x,y) 的 MySQL 列。我知道我可以定义一个像 float(5,2) 这样有很多 'ORs' 的模式。是否有一种有效的方法可以为此生成正则表达式,以便我可以在我的 Web 文档中对其进行编码?

一种解决方法是指定 \d+(\.\d{1,y})? 然后设置 maxlength=x+1。应该是 x+1 因为计算了小数位。这将允许 提交 与规范相反的长度 x+1 的整数。我知道我可以进行 JavaScript 验证,但我想通过 HTML 验证 实现所需。

最佳答案

您可以先使用 lookahead 检查总长度然后检查小数点后数字的长度。

如果你想要 X 总位数和最多 Y 小数点,你可以使用:

^(?=.{X+1}$)([1-9]\d*|0)\.\d{1,Y}$

解释:

^         asserts you are in the start position of the line
(?= lookahead (zero length) match for:
.{X + 1} X+1 characters
$ end of line //now you have asserted the total length
the whole part either
0 is a single zero
[1-9]\d* more than a single digit and does not start with zero
\. a dot for the decimal point
\d{1,Y} at least 1 and at most Y digits
$ asserts end of line

请注意,您不需要检查整个部分的长度,因为您已经检查了总长度和小数点后数字的长度,因此小数点前的部分自动正确。

例子:

对于 X = 5Y = 2,您将有:

^(?=.{8}$)([1-9]\d*|0)\.\d{1,2}$

Regex101 demo

关于html - float(x,y) 的正则表达式可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60019878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com