Extjs-为editor自定义vtype(Validation)
1.extjs原有的vtype类型
在extjt中内置了四种验证类型:
- alpha:希腊数字
- alphanum:字母和数字
- email:电子邮件地址
- url:网址
如果只是验证这四种类型只需这样调用:
{
xtype: 'textfield',
name: 'email',
fieldLabel: 'Email Address',
vtype: 'email' // requires value to be a valid email address format
}
2.extjs自定义type类型
但是在实际开发过程中,我们往往需要验证的值是多种多样的。
比如这里用验证用’;‘分隔多个邮箱的值如为例子。
123sd@abc.com;1234@sdf.com
2.1首先查看官方API
2.2 自定义vtype验证用’;‘分隔多个邮箱的值
Ext.define('Override.form.field.VTypes', {
override: 'Ext.form.field.VTypes',
mutipleEmail: function (value) {
let emailArray = value.split(";");
for (let i = 0; i < emailArray.length; i++) {
let email = emailArray[i];
if (!this.mutipleEmailRe.test(email)) {
return false;
}
}
return true;
},
mutipleEmailRe: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/,
mutipleEmailText: 'Mutiple email format: abcd@pccw.com;1234@pccw.com.'
});
如同内置的类型一样调用即可
{
xtype: 'textfield',
name: 'email',
fieldLabel: 'Mutiple Email Address',
vtype: 'mutipleEmail'
}
正确输入的效果: