我目前正在尝试以
格式验证字符串1个字符(A-Z)和3个字符(A-Z 0-9)(字母后跟3个字母数字)
这是我的自定义vtype:
customalphanumeric: function(
return (/^([A-Za-z]){1}([A-Za-z0-9]){3}$/).test(v);
},
customalphanumericText: 'Please enter 1 Alpha character followed by 3 alphanumeric characters',
customalphanumericMask: /([A-Za-z0-9])/
当我在框中输入任何字母时,文本显示“请输入1个Alpha字符后跟3个字母数字字符”。
如何让它等待输入4个字符?
我试过这个:
if (v.length == 4) {
return (/^([A-Za-z]){1}([A-Za-z0-9]){3}$/).test(v);
}
else {
return true;
}
但这允许少于4个字符的短语。任何帮助将不胜感激。
答案 0 :(得分:1)
我认为这不会按照你想要的方式工作,因为如果错误没有显示,直到它达到4个字符,这意味着表单在此之前是有效的,无论谁使用你的表单都能够提交它。
您可以做的是添加minLength:4属性并正确显示所有验证:
Ext.application({
name : 'MyApp',
launch : function() {
var customRegEx = /^([A-Z]){1}([A-Z0-9]){3}$/i;
Ext.apply(Ext.form.field.VTypes, {
customtest: function(val, field) {
return customRegEx.test(val);
},
customtestText: 'Please enter 1 Alpha character followed by 3 alphanumeric characters',
customtestMask: /([A-Z0-9])/
});
Ext.create('Ext.panel.Panel',{
title: 'Test Panel',
renderTo: Ext.getBody(),
items: [{
xtype: 'textfield',
vtype: 'customtest',
minLength: 4
}]
})
}
});
答案 1 :(得分:0)
你几乎拥有它。
if (v.length == 4) {
return (/^([A-Za-z]){1}([A-Za-z0-9]){3}$/).test(v);
}
else {
//return true;
return false;
}
您也可以更改else语句中给出的文本