Javascript 使用观察者如何在Vuejs中验证电子邮件?
Javascript 使用观察者如何在Vuejs中验证电子邮件?,javascript,vue.js,Javascript,Vue.js,观察:{ 电子邮件(价值){ this.email=值; 此.validateEmail(值); }, }, 方法(){ validateEmail(){ //eslint禁用下一行 如果(/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-Z-0-9]+-9].[a-zA 0-Z]++-/.2])。测
观察:{
电子邮件(价值){
this.email=值;
此.validateEmail(值);
},
},
方法(){
validateEmail(){
//eslint禁用下一行
如果(/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-Z-0-9]+-9].[a-zA 0-Z]++-/.2])。测试{
this.errmsg.email=''
}否则。errmsg['email']='Invalid email Address';
},
提交
您可以使用它来实现:
computed() {
isEmailValid() {
return '/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/'.test(this.email)
}
}
computed(){
isEmailValid(){
返回“/^([^()[\]\\,;:\s@\”]+(\.[^()[\]\,;:\s@\“]+)*)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]124;([a-zA Z-Z-0-9]+-9].[a-zA Z]++-/.2])。此测试(电子邮件)
}
}
然后将您的isDisabled替换为isEmailValid
这里使用fiddle:在您的情况下(如果我们只讨论电子邮件验证),将更容易为此创建计算属性,正如Takachi所说。
在这个案子中你不需要任何观察者
但是如果你需要更多的验证,请使用一些lib-like或者只是检查一下它是如何完成的。在输入中我需要写@input=“isEmailValid”,然后在isDisabled中我调用like | |(!this.email | |!this.isEmailValid)是这样的吗?“/^([^()[]\],;:s@”+(.[^()[]\],:s@+*)*)|([[0-9]{1,3]}.[1,9]}.{。[0-9]{1,3}.[0-9]{1,3}])|([a-zA-Z-0-9]+)+[a-zA-Z]{2,}])$/”.测试不是一个函数,你只需在输入上使用
v-model=“email”
,而不是在isDisabled:function()中使用@inputAnd(){返回(this.mobile.length<10)|(!this.nameChange.length)|(!this.email |;this.isevalid);这是进入isDisabled内部的正确方式吗?对不起,我没有完全理解,如果可能的话,请给出一些工作片段。我尝试了这个方法,但没有验证。请检查一下