メモメモ。
目標
emailにバリデーションをかけること。
日本語やスペースは許容しない。
なにごと
こういう書き方はたくさんみたけど
var isValidEmail: Bool {
return (self =~ "[A-Z0-9a-z._+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}")
}
前後に日本語なりスペースを入れた時にエラーがバリデーションをすり抜けた。
(エラー出ない。。)
バックエンドではちゃんとバリデーションかかるように実装済なのでサーバーエラーとして
返されちゃって気持ち悪い。
解決する
「前後に日本語なりスペース〜」を考慮した書き方にする。
var isValidEmail: Bool {
return (self =~ "^([A-Z0-9a-z._+-])+@([A-Za-z0-9.-])+\\.([A-Za-z]{2,})$")
}
やったのは
・それぞれのパーツ[@と.の前後]を()で各要素を区分け
・始まり[ˆ]と終わり[$]を明記
(エラーでた😌)
全然見つからなかったのでメモメモ。
これだけなのにちょっと時間食われた。。
もっといい書き方あったらウェルカムです🍺