[jQuery]半角・全角・数値などの入力チェックをする

入力フィールドにてキーアップした時に入力チェックを行う。
指定外の文字が入力されると指定外の文字がキーアップ毎に削除される。
全角の変換時にフィールドから文字が消えるが正しい値が入力されると表示される。
気になる場合はフォーカスが外れた時にチェックする「blur」など、どの時点でキーイベントを発生させるか状況によって変更する。

・サンプルコード

<!DOCTYPE html>
<html lang="ja">
	<head>
		<meta charset="utf-8">
		<title>半角・全角・数値などの入力チェックをする</title>
		<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.4.1.min.js"></script>
	</head>
	<body>
		<p>
			半角数値のみ:
			<input type="text" with="numeric">
		</p>
		<p>
			半角英字のみ:
			<input type="text" with="alpha">
		</p>
		<p>
			半角英数のみ:
			<input type="text" with="alphanum">
		</p>
		<p>
			全角カナのみ:
			<input type="text" with="zenkana">
		</p>
		<p>
			半角カナのみ:
			<input type="text" with="hankana">
		</p>
		<p>
			半角のみ:
			<input type="text" with="hankaku">
		</p>
		<p>
			全角のみ:
			<input type="text" with="zenkaku">
		</p>
	</body>
	<script language="JavaScript" type="text/JavaScript">
	$(function(){

		/**
		 * 半角数値のみ
		 */
		$("[with='numeric']")
		.off(".inputcontrol.numeric")
		.on("keyup.inputcontrol.numeric", function(){
				// 半角数値以外は空文字に変換する
				$(this).val($(this).val().replace(/[^0-9]/g,""));
		});


		/**
		 * 半角英字のみ
		 */
		$("[with='alpha']")
		.off(".inputcontrol.alpha")
		.on("keyup.inputcontrol.alpha", function(){
			// 半角英字以外は空文字に変換する
			$(this).val($(this).val().replace(/[^a-zA-Z]/g,""));
		});


		/**
		 * 半角英数のみ
		 */
		$("[with='alphanum']")
		.off(".inputcontrol.alphanum")
		.on("keyup.inputcontrol.alphanum", function(){
			$(this).val($(this).val().replace(/[^0-9a-zA-Z]/g,""));
		});



		/**
		 * 全角カナのみ
		 */
		$("[with='zenkana']")
		.off(".inputcontrol.zenkana")
		.on("keyup.inputcontrol.zenkana", function(){
			$(this).val($(this).val().replace(/[^ァ-ヶヽヾー]/g,""));
		});


		/**
		 * 半角カナのみ
		 */
		$("[with='hankana']")
		.off(".inputcontrol.hankana")
		.on("keyup.inputcontrol.hankana", function(){
			$(this).val($(this).val().replace(/[^ヲ-゚]/g,""));
		});


		/**
		 * 半角のみ
		 */
		$("[with='hankaku']")
		.off(".inputcontrol.hankaku")
		.on("keyup.inputcontrol.hankaku", function(){
			$(this).val($(this).val().replace(/[^ -~]/g,""));
		});


		/**
		 * 全角のみ
		 */
		$("[with='zenkaku']")
		.off(".inputcontrol.zenkaku")
		.on("keyup.inputcontrol.zenkaku", function(){
			$(this).val($(this).val().replace(/[ -~]/g,""));
		});

	});
	</script>
</html>

・実行結果

コメントする

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