2017-07-17 2 views
1

私はこれを持っている:Eメールの入力が有効な形式でないときVue.jsの入力のフォーマットを検証するために使用できる単純な関数は何ですか? Vue.jsで

<template> 
    <button @click="sendMail(); $emit('close')">Send</button> 
</template> 
<script> 
    methods: { 
     sendMail() { 
      axios.post('/mail', {email: this.email}); 
      this.$notify.make('Sent!', 'success'); 
     }, 
     invalidEmail() { 
      this.$notify.make('Invalid email format!', 'failure'): 
     } 
    } 
</script> 

にはどうすればinvalidEmail()を誘発することができるのだろうか?

+0

質問は少し不明です。 sendMailを呼び出す前に電子メールが無効かどうかを確認する方法が必要ですか? – Cobaltway

+0

イベントリスナー 'sendMail($ event)'に '$ event'を渡し、関数の引数' methods:{sendMail(event)... 'を取得し、' event.target.value'が有効であるかどうかを調べることができます。 – wostex

+0

はい、入力が有効かどうかを確認する方法はまだありません。 @Cobaltway – Bargain23

答えて

2

正規表現を使用してメールの正当性をチェックすることができます。正規表現の

出典:http://emailregex.com/

<template> 
    <button @click="sendMail(); $emit('close')">Send</button> 
</template> 
<script> 
    // Here is the regex to test if an email is valid 
    const mailRegex = /^(([^<>()[\]\\.,;:\[email protected]"]+(\.[^<>()[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[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,}))$/; 
    module.exports = { 
     // [...] 
     methods: { 
      sendMail() { 
       // If this.email is not a valid email, abort by return and call this.invalidEmail 
       if (!mailRegex.test(this.email)) return this.invalidEmail(); 

       axios.post('/mail', {email: this.email}); 
       this.$notify.make('Sent!', 'success'); 
      }, 
      invalidEmail() { 
       this.$notify.make('Invalid email format!', 'failure'): 
      } 
     } 
    } 
</script> 
関連する問題