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

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

また「^[0-9]{7}$」のパターンは7桁の半角数字にマッチするので郵便番号の入力チェックなどに利用できます。5桁以上8桁以下の半角数字にマッチさせたい場合は「^[0-9]{5,8}$」とパターンを記述することができます。

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

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

ソースコード

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

/**
 * 文字列が半角数字かチェックします
 * @param string $str 文字列
 * @return bool 文字列が半角数字の場合はtrue、それ以外はfalse
 */
function isHalfWidthNumbers(string $str) {
	return preg_match('/^[0-9]+$/', $str);
}

検証

引数の入力

isHalfWidthNumbers("
");

検証結果

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

/**
 * 文字列が指定した桁数の半角数字かチェックします
 * @param string $str 文字列
 * @param int $n 桁数
 * @return bool 文字列が指定した桁数の半角数字の場合はtrue、それ以外はfalse
 */
function isHalfWidthNumbersFixedLength(string $str, int $n) {
	return preg_match(sprintf('/^[0-9]{%d}$/', $n), $str);
}

検証

引数の入力

isHalfWidthNumbersFixedLength("
",
);

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

検証結果

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

/**
 * 文字列が最小桁数以上の半角数字かチェックします
 * @param string $str 文字列
 * @param int $n 最小桁数
 * @return bool 文字列が最小桁数以上の半角数字の場合はtrue、それ以外はfalse
 */
function isHalfWidthNumbersMinLength(string $str, int $n) {
	return preg_match(sprintf('/^[0-9]{%d,}$/', $n), $str);
}

検証

引数の入力

isHalfWidthNumbersMinLength("
",
);

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

検証結果

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

/**
 * 文字列が最大桁数以下の半角数字かチェックします
 * @param string $str 文字列
 * @param int $m 最大桁数
 * @return bool 文字列が最大桁数以下の半角数字の場合はtrue、それ以外はfalse
 */
function isHalfWidthNumbersMaxLength(string $str, int $m) {
	return preg_match(sprintf('/^[0-9]{1,%d}$/', $m), $str);
}

検証

引数の入力

isHalfWidthNumbersMaxLength("
",
);

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

検証結果

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

/**
 * 文字列が指定した桁数範囲の半角数字かチェックします
 * @param string $str 文字列
 * @param int $n 最小桁数
 * @param int $m 最大桁数
 * @return bool 文字列が指定した桁数範囲の半角数字の場合はtrue、それ以外はfalse
 */
function isHalfWidthNumbersInRange(string $str, int $n, int $m) {
	return preg_match(sprintf('/^[0-9]{%d,%d}$/', $n, $m), $str);
}

検証

引数の入力

isHalfWidthNumbersInRange("
",
,
);

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

検証結果

Follow me!

photo by:Sigmund