JavaScriptで英数字,アンダースコア(_), ハイフン(-)の組み合わせだけを許可するバリデーションを作成する方法

JavaScript_Validation

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、JavaScriptで英数字,アンダースコア(_), ハイフン(-)の組み合わせだけを許可するバリデーションを作成する方法について解説していきます。

英数字,アンダースコア(_), ハイフン(-)の組み合わせだけを許可するバリデーションを作成する

要件定義

今回の要件定義は、次のとおりです。

  1. 数字のみの入力は、false にして Error処理をする。
  2. 許可する入力は、英数字, アンダースコア, ハイフン だけで、それ以外の文字列は、falseにしてError処理をする。
  3. ただし、アンダースコアやハイフンが、先頭・末尾きたら、falseにして Error処理をする。

バリデーションのSampleCode

function validateInput(input) {
  // 数字のみの入力はfalse
  if (/^\d+$/.test(input)) {
    return false;
  }
  // 許可する入力は英数字、アンダースコア、ハイフンだけ
  if (/^[a-zA-Z0-9_-]*$/.test(input)) {
    // アンダースコアやハイフンが先頭・末尾にある場合はfalse
    if (/^[_-]|[_-]$/.test(input)) {
      return false;
    }
    // それ以外はtrue
    return true;
  }
  return false;
}


console.log(validateInput("0012_AZ"));
console.log(validateInput("0012-AZ"));
console.log(validateInput("Robotama"));
console.log(validateInput("Robotama-AZ"));
console.log(validateInput("0012_AZ-Robotama"));
console.log(validateInput("AZ_Robotama"));
console.log(validateInput("AZ_Robotamaなのだ!"));
console.log(validateInput("-AZ_Robotama"));
console.log(validateInput("AZ_Robotama_"));

JavaScript書籍 Ver. 中級-上級者向け

JavaScript書籍 Ver. 初級者向け

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

最近の投稿