<lightning:input type="email"..>の入力チェックがちょっと足りないなと思った
①カスタム項目(メール)
②コンポーネント
<lightning:input type="email" label="Email" name="email" value="abc@domain.com" />
③コンポーネント
<lightning:input type="email" label="Email (using pattern)" name="email" value="abc@domain.com" pattern="^(([^<>()\[\]\\.,;:\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,}))$" messageWhenTypeMismatch="@だけチェック" messageWhenPatternMismatch="メール項目と同じくチェック"/>
② で「@」チェックのみするので
メールアラートとかのプロセスで落ちる問題がある。
③のようにpatternを使うと①と同じくチェックしてくれる。
controllerにチェック処理書かなくて済む!ラク!
patterに書いてる正規表現について
いろいろ試してみて使えたのがこれ!↓
^(([^<>()\[\]\\.,;:\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,}))$
だが、このままpatternに書くとエラーになるから
& (&) 、< (<) 、> (>) 、" (")で書き換える必要がある。
stackoverflow.com
↓書き換えた後の正規表現↓
^(([^<>()\[\]\\.,;:\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,}))$