extjs 电子邮件验证 Sencha

fcipmucu  于 2023-10-18  发布在  其他
关注(0)|答案(4)|浏览(133)

如何在 Sencha 触摸中检查电子邮件字段的有效性?这里我的代码在应用程序中,请帮助我解决这个问题

{
        xtype: 'fieldset',
        items:[{
        xtype: 'emailfield',
        inputType:'email',
        labelWidth: '33%',
        label: 'Email',
        id:'emailId',     
        name: 'emailId',placeHolder:'emailId'}]
  }
ep6jt1vc

ep6jt1vc1#

直接在视图中激活验证的正确方法是:

{
  xtype: 'textfield',
  name: 'email',
  vtype: 'email'
}

不需要regex。

q43xntqr

q43xntqr2#

如果你将字段存储为模型示例,你可以这样做。

Ext.define('User', {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            {name: 'name',  type: 'string'},
            {name: 'emailId',    type: 'string'}
            {name: 'phone', type: 'string'}
        ]
    },

    validations: [
       {type: 'presence', name: 'name',message:"Enter Name"},
       {type: 'format',   name: 'emailId', matcher: /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/, message:"Wrong Email Format"}
    ]
});

或者你可以只匹配正则表达式

var ereg = /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var testResult = ereg.test(emailId);

testResult将根据验证结果为true或false。

gzszwxb4

gzszwxb43#

对于用户输入的表单字段验证,请使用以下正则表达式

{
  xtype: 'textfield',
  allowBlank:false,
  regex:/^((([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z\s?]{2,5}){1,25})*(\s*?;\s*?)*)*$/,
  regexText:'This field must contain single or multiple valid email addresses separated by semicolon (;)',
  blankText : 'Please enter email address(s)',
}
qvk1mo1f

qvk1mo1f4#

像“email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“这样的电子邮件是正确的,不适用于这个正则表达式:
“var ereg = /^\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*$/;“正确的例子:

{
      xtype: 'textfield',
      name: 'Email',
      maxLength: 255,
      readOnly: true,
      validator: function (enteredValue) {
         if (!RegExp(/^\w+(-+\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/).test(enteredValue)) {
         return 'Error, not an email format';
           }
      return true;
      }
    }

相关问题