如何使用maskRe限制ExtJs Textfield仅接受数字。 (应接受正数,负数,整数和十进制数。)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用maskRe限制ExtJs Textfield仅接受数字。 (应接受正数,负数,整数和十进制数。)相关的知识,希望对你有一定的参考价值。
我需要配置我的ExtJs文本字段只接受可以是正数,负数,整数和最多2位小数的小数。我尝试使用maskeRe
和正则表达式/^-?[0-9]d*(.d+)?$/
。但它只接受正整数。用户不应该键入受限制的字符。它也应该只在第一个地方接受' - '和'。'介于两者之间,只有一次。
所以它应该接受:10,-10,10.12,-10.34等
谢谢
答案
将你的maskRe
改为
maskRe: /[0-9.-]/,
validator: function(v) {
return /^-?[0-9]*(.[0-9]{1,2})?$/.test(v)? true : 'Only positive/negative float (x.yy)/int formats allowed!';
},
关键是你允许使用maskRe
(不是值本身)的一些字符并验证validator
中的字符串输入。
图案细节:
^
- 字符串的开头-?
- 一个可选的连字符[0-9]*
- 零个或多个数字(.[0-9]{1,2})?
- 一个可选的序列.
- 一个点[0-9]{1,2}
- 任何1或2位数字$
- 字符串的结尾。
另一答案
你可以使用这个属性xtype:'numberfield',它会接受所有类型的数字。对于十进制值,我们可以使用decimalPrecision:2。
试试吧,如果代码无效,那么请提供您的代码。所以我可以建议你最好的解决方案。
祝一切顺利 :)
另一答案
他离开了这种方式,以防有人这样做,他们可以服务
只有信件:
<ext:TextField ID="tfname" FieldLabel="Name" MaskRe="([a-zA-Z])" runat="server" >
</ext:TextField>
只有数字:
<ext:TextField ID="tfnumber" FieldLabel="Number" MaskRe="([0-9])" runat="server" >
</ext:TextField>
接受以前的所有:
<ext:TextField ID="tfname" FieldLabel="Name" MaskRe="([a-zA-Z0-9])" runat="server" >
</ext:TextField>
以上是关于如何使用maskRe限制ExtJs Textfield仅接受数字。 (应接受正数,负数,整数和十进制数。)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 xtype 文件字段(extjs 4.1.0)限制文件类型?
如何将 extjs 网格限制为仅显示 100 行并提供所有行作为下载?
如何限制 UIAlertView UITextField 中的字符输入