Regex 仅接受整数和十进制数的正则表达式

Regex 仅接受整数和十进制数的正则表达式,regex,extjs,Regex,Extjs,我正在使用ExtJS。我有一个文本字段,可以接受整数或十进制数。Iam使用正则表达式来实现这一点。但它不起作用 这是我的密码 { xtype: 'textfield', id: 'myField', fieldLabel: 'Text Field(numbers-only)', maskRe: /[0-9]+(\.[0-9]+)?$/ } 使用上述正则表达式时,Text

我正在使用ExtJS。我有一个文本字段,可以接受整数或十进制数。Iam使用正则表达式来实现这一点。但它不起作用

这是我的密码

    {
        xtype: 'textfield',
        id: 'myField',
        fieldLabel: 'Text Field(numbers-only)',                      
        maskRe: /[0-9]+(\.[0-9]+)?$/

    }
使用上述正则表达式时,Textfield不接受。(点)

我该如何解决这个问题??

  • 在小数点前使用\d*而不是\d+,以匹配零位或多位数字
  • 还要添加锚定(^和$),否则只要有匹配项,它就会通过 可用
  • 这还将验证空字符串,因此如果需要,可以使用
    向前看以确保至少有一个数字:
使用以下代码:

 {
         xtype: 'textfield',
         id: 'myField',
         fieldLabel: 'Text Field(numbers-only)',                      
         maskRe: /^[1-9]\d*(\.\d+)?$/

}

根据您的理解目的,请参见此链接

如果您想限制小数位数,可以使用此链接:

^\d+(\.\d{1,2})?$

这将允许您至少传递1位小数,但不超过2位。

不确定我是否完全理解您的需要,但这样可以吗

/^[0-9]+(\.[0-9]*)?$/
这将接受:

  • 123
  • 0.123
  • 123.

既不是整数也不是小数。为什么要接受它?所谓的“小数”一定是指“小数分隔符”,对吗?删除
$
符号,它使模式仅在输入字符串的末尾匹配。两个正则表达式模式都不会验证空行。您有一个必须匹配的强制性
[1-9]
字符。原始正则表达式有
[0-9]+
,它也将匹配某些内容。我已经在线签入了上面的链接中提到的内容。这适用于整数和十进制数,而不适用于点()。