我尝试过的所有 REGEX 都没有在 HTML 输入模式中工作



我正在尝试进行HTML输入,以便只能接收float数字,例如:x.123 x,123 x.123456 x,123456

其中 x 可以有一个或 2 个数字:x 或 xx。

基本上,我想知道如何制作一个只接受这些数字的pattern

在阅读WEB时,我发现了两种应该符合我需求的模式,但它们不起作用。

^[+-]?([0-9]*[.])?[0-9]+$ ^(?=.)(d{1,2}(,d{3,6})*)?(.d+)?$

这些被发现了,我不明白这是如何工作的。

谷歌搜索正则表达式,我发现很多工具适用于JavaScript,PHP,RUBY,PCRE(我不知道(。

我不明白他们使用什么编码语言或如何。在深入研究之后,我发现自己更加迷茫,有更多的问题。

有没有任何反向工具可以实际制作正则表达式?

我找到了这个 http://buildregex.com/但我不知道它是如何工作的......这是我试图使我的模式...

/(?:(?:(?:(?:(?:(?:)|(?:(?:22.123))|(?:(?:2.123))|(?:(?:22.123))|(?:)|(?:)|(?:))))))/

编辑:

这是输入:

<input id="text-input" type="text" inputmode="numeric" pattern="/^[d]{1,2}[.,][d]{3,6}$/"
                                    oninvalid="this.setCustomValidity('Please enter a number with 3-6 decimals')"
                                    onchange="try{setCustomValidity('')}catch(e){}"
                                    oninput="setCustomValidity(' ')"
>

您可以使用pattern="^d{1,2}[.,]d{3,6}$"

^d{1,2} 以 1 到 2 位数字开头

[.,]后跟逗号和点

以 3 到 6 位数字结尾的d{3,6}$

不需要分隔符和锚点,请使用:

pattern="d{1,2}[.,]d{3,6}"
^d{1,2}[.]d{3,6}$ ,

^d{1,2} 表示:最多 2 位数字开头。

[.]的意思是:在中间有

d{3,6} 表示末尾小数点的最小值 3 位和最多 6 位数字。

最新更新