JavaScriptで文字列が半角英数字であるかを正規表現でチェックする

文字列が半角英数字であるかを正規表現でチェックするには「^[a-zA-Z0-9]+$」のパターンを使います。この正規表現は「1文字以上の半角英数字の組み合わせで構成される文字列」という意味になり「A93tjg2」や「Z」、「12345」などにマッチします。「A-1234」などは文字列に記号が含まれるためマッチしません。

また「^[a-zA-Z0-9]{6}$」のパターンは6桁の半角英数字にマッチするのでクーポンコードなど固定長文字列の入力チェックに利用できます。パスワードなどで12桁以上20桁以下の半角英数字にマッチさせたい場合は「^[a-zA-Z0-9]{12,20}$」とパターンを記述することができます。

基本的な半角英数字チェックで利用できる正規表現のパターンは以下になります。

#マッチさせたい条件正規表現パターン
1すべて半角英数字である^[a-zA-Z0-9]+$
2n桁の半角英数字である^[a-zA-Z0-9]{n}$
3n桁以上の半角英数字である^[a-zA-Z0-9]{n,}$
4m桁以下の半角英数字である^[a-zA-Z0-9]{1,m}$
5n桁以上m桁以下の半角英数字である^[a-zA-Z0-9]{n,m}$
半角英数字のチェックで利用できる正規表現パターン

ソースコード

すべて半角英数字であるかをチェックする

/**
 * 文字列が半角英数字かチェックします
 *
 * @param {string} str チェック対象の文字列
 * @returns {boolean} 文字列が半角英数字の場合はtrue、それ以外はfalse
 */
const isHalfWidthAlphanumeric = (str) => {
	const regex = new RegExp(`^[a-zA-Z0-9]+$`, "u");
	return regex.test(str);
};

検証

引数の入力

isHalfWidthAlphanumeric("
");

検証結果

n桁の半角英数字であるかをチェックする

/**
 * 文字列が指定した桁数の半角英数字かチェックします
 *
 * @param {string} str チェック対象の文字列
 * @param {number} len 桁数
 * @returns {boolean} 文字列が指定した桁数の半角英数字の場合はtrue、それ以外はfalse
 */
const isHalfWidthAlphanumericFixedLength = (str, len) => {
	if (len < 0) {
		throw new Error("桁数は0以上の整数である必要があります。");
	}

	const regex = new RegExp(`^[a-zA-Z0-9]{${len}}$`, "u");
	return regex.test(str);
};

検証

引数の入力

isHalfWidthAlphanumericFixedLength("
",
);

長さは桁数で入力してください。

検証結果

n桁以上の半角英数字であるかをチェックする

/**
 * 文字列が最小桁数以上の半角英数字かチェックします
 *
 * @param {string} str チェック対象の文字列
 * @param {number} minLength 最小桁数
 * @returns {boolean} 文字列が最小桁数以上の半角英数字の場合はtrue、それ以外はfalse
 */
const isHalfWidthAlphanumericAtLeastMinLength = (str, minLength) => {
	if (minLength < 0) {
		throw new Error("最小桁数は0以上の整数である必要があります。");
	}

	const regex = new RegExp(`^[a-zA-Z0-9]{${minLength},}$`, "u");
	return regex.test(str);
};

検証

引数の入力

isHalfWidthAlphanumericAtLeastMinLength("
",
);

長さは桁数で入力してください。

検証結果

m桁以下の半角英数字であるかをチェックする

/**
 * 文字列が最大桁数以下の半角英数字かチェックします
 *
 * @param {string} str チェック対象の文字列
 * @param {number} maxLength 最大桁数
 * @returns {boolean} 文字列が最大桁数以下の半角英数字の場合はtrue、それ以外はfalse
 */
const isHalfWidthAlphanumericAtMostMaxLength = (str, maxLength) => {
	if (maxLength < 1) {
		throw new Error("最大桁数は1以上の整数である必要があります。");
	}

	const regex = new RegExp(`^[a-zA-Z0-9]{1,${maxLength}}$`, "u");
	return regex.test(str);
};

検証

引数の入力

isHalfWidthAlphanumericAtMostMaxLength("
",
);

長さは桁数で入力してください。

検証結果

n桁以上m桁以下の半角英数字であるかをチェックする

/**
 * 文字列が指定した桁数範囲の半角英数字かチェックします
 *
 * @param {string} str チェック対象の文字列
 * @param {number} minLength 最小桁数
 * @param {number} maxLength 最大桁数
 * @returns {boolean} 文字列が最小桁数以上の半角英数字の場合はtrue、それ以外はfalse
 */
const isHalfWidthAlphanumericInRange = (str, minLength, maxLength) => {
	if (minLength < 0) {
		throw new Error("最小桁数は0以上の整数である必要があります。");
	}

	if (maxLength < 1) {
		throw new Error("最大桁数は1以上の整数である必要があります。");
	}

	if (maxLength < minLength) {
		throw new Error("最小桁数と最大桁数が逆転しています。");
	}

	const regex = new RegExp(`^[a-zA-Z0-9]{${minLength},${maxLength}}$`, "u");
	return regex.test(str);
};

検証

引数の入力

isHalfWidthAlphanumericInRange("
",
,
);

長さは桁数で入力してください。

検証結果

Follow me!

photo by:Sigmund