こんにちはフロントエンドエンジニアのまさにょんです!
今回は、JavaScriptで英数字,アンダースコア(_), ハイフン(-)の組み合わせだけを許可するバリデーションを作成する方法について解説していきます。
目次
英数字,アンダースコア(_), ハイフン(-)の組み合わせだけを許可するバリデーションを作成する
要件定義
今回の要件定義は、次のとおりです。
- 数字のみの入力は、false にして Error処理をする。
- 許可する入力は、英数字, アンダースコア, ハイフン だけで、それ以外の文字列は、falseにしてError処理をする。
- ただし、アンダースコアやハイフンが、先頭・末尾きたら、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!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!