我正在尝试进行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 位数字。