我正在尝试输入HTML,使其只能接收float
数字,例如:x.123 x,123 x.123456 x,123456
其中x可以具有一位或两位数字:x或xx。
基本上,我想知道如何制作仅接受此类数字的pattern
。
仔细阅读WEB,我发现两种模式可以满足我的需求,但它们不起作用。
^[+-]?([0-9]*[.])?[0-9]+$
^(?=.)(\d{1,2}(,\d{3,6})*)?(\.\d+)?$
这些被发现了,我不知道它是如何工作的。
使用Google搜索正则表达式,我发现了很多可用于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(' ')"
>
答案 0 :(得分:2)
您可以使用pattern="^\d{1,2}[.,]\d{3,6}$"
^\d{1,2}
以1到2位数字开头
[.,]
后跟一个逗号,或者一个点
\d{3,6}$
以3到6位数字结尾
答案 1 :(得分:1)
不需要分隔符和锚点,请使用:
pattern="\d{1,2}[.,]\d{3,6}"
答案 2 :(得分:1)
^\d{1,2}[\.]\d{3,6}$ ,
^d{1,2}
的意思是:最多2位数字开头。
[\.]
的意思是:中间有。。
d{3,6}
表示末尾的最小3位和最大6位小数点。