Regex 仅接受整数和十进制数的正则表达式
我正在使用ExtJS。我有一个文本字段,可以接受整数或十进制数。Iam使用正则表达式来实现这一点。但它不起作用 这是我的密码Regex 仅接受整数和十进制数的正则表达式,regex,extjs,Regex,Extjs,我正在使用ExtJS。我有一个文本字段,可以接受整数或十进制数。Iam使用正则表达式来实现这一点。但它不起作用 这是我的密码 { xtype: 'textfield', id: 'myField', fieldLabel: 'Text Field(numbers-only)', maskRe: /[0-9]+(\.[0-9]+)?$/ } 使用上述正则表达式时,Text
{
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]+
,它也将匹配某些内容。我已经在线签入了上面的链接中提到的内容。这适用于整数和十进制数,而不适用于点()。