# JavaScript課題25

# JavaScript課題25

塾生が書いてくれたコード

レビュー時に他の塾生同士で議論になっていた

「どこまで共通化するか」

個人的に自分が思うには
共通化も考える一方で共通化をしないことも考えること
だと思いました

以下は塾生の書いたコードの一部を修正したのですが、
どうでしょうか、

元のコードは80行目以降あたりはこんな感じでした

let validateTerms = {
userNameMaxCount: 15,
emailRegex: new RegExp(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}\.[A-Za-z0-9]{1,}$/),
passwordRegex: new RegExp(/^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,}$/),
};

const errorMessages = {
userName: “ユーザー名は15文字以下にしてください。”,
email: “メールアドレスの形式になっていません。”,
password: “8文字以上の大小の英数字を交ぜたものにしてください。”,
};

const isValid = (key) => {
switch (key) {
case “userName”:
return form[key].value.length <= validateTerms.userNameMaxCount;

case “email”:
return validateTerms.emailRegex.test(form[key].value);

case “password”:
return validateTerms.passwordRegex.test(form[key].value);

default:
return;
}
};

な感じでした

そもそも自分だったら部品毎にバリデーションは分けることを伝えました
関心毎に分ける。
この場合はinputのpassword、name, email毎に仕事は分けつつ、共通化する

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です