首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否使用正则表达式限制文本字段/数字字段中的输入字符?

是否使用正则表达式限制文本字段/数字字段中的输入字符?
EN

Stack Overflow用户
提问于 2011-08-10 16:35:29
回答 6查看 64.2K关注 0票数 19

我在ExtJS表单中使用numberField,只想输入0-99范围内的正数,它应该只接受2个字符(不超过2个)。

代码语言:javascript
复制
{
    xtype:"textfield",
    allowNegative: false,
    allowDecimals: false,
    minValue: 0,
    maxValue: 99,
    maxLength: 2
}

在上面的代码中给出一个错误,但它接受的字符超过2个。

我也尝试了下面,但问题是相同的:

代码语言:javascript
复制
{
    xtype:"textfield",
    regex: /^\d{0,2}$/,
    regexText: "<b>Error</b></br>Invalid Number entered.",
    validator: function(v) {
        return /^\d{0,2}$/.test(v)?true:"Invalid Number";
    }
}

如何限制输入超过2个字符?

EN

回答 6

Stack Overflow用户

发布于 2012-04-10 21:31:18

不确定vtype在ExtJS 4.x之前是否存在,但这就是使用vtype的方法。

代码语言:javascript
复制
var validMileRadius = /^([0-9]{1,4})/;
        Ext.apply(Ext.form.field.VTypes, {
            //  vtype validation function
            radius: function(val, field) {
                return validMileRadius.test(val);
            },
        radiusText: 'Not a Valid Radius.'
    });

{
    xtype: 'textfield',
    width: 40,
    maxLength : 4,
    style : {marginLeft:'10px'},
    id : 'cityRadius',
    enforceMaxLength :4,
    vtype : 'radius'                    
}

感谢Punith

票数 7
EN

Stack Overflow用户

发布于 2014-09-29 21:16:46

对于每个人来说,谁坚持相同的

对于ExtJS 4.x,您甚至不需要创建VType。来自Ext.form.field.Number的ExtJS 4.x文档

代码语言:javascript
复制
enforceMaxLength : Boolean
True to set the maxLength property on the underlying input field. Defaults to false

因此,您只需指定maxLength并将enforceMaxLength设置为true。根据之前的帖子,它可能看起来像这样:

代码语言:javascript
复制
{
  xtype: 'textfield',
  width: 40,
  maxLength : 4,,
  enforceMaxLength : true  
  style : {marginLeft:'10px'},
  id : 'cityRadius'                
}
票数 4
EN

Stack Overflow用户

发布于 2014-12-01 12:33:58

这只是一个帮助器,但是要将文本字段限制为只允许数字,您可以使用属性"maskRe“设置文本字段的属性。它允许您使用正则表达式创建掩码。这是一个只允许您输入数字的掩码:

代码语言:javascript
复制
{
    xtype: 'textfield',
    fieldLabel: 'Text Field(numbers-only)',
    enforceMaxLength:true,  //Restrict typing past maxLength: n
    maxLength: 8,           //Set max length validation
    maskRe:/[0-9.]/         //Allow only numbers
},
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7007957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档