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

时间:2019-06-07 12:05:14

标签: html regex

我正在尝试输入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(' ')"
>


3 个答案:

答案 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位小数点。