手から出たゴミ

食って、寝て、糞をする合間で作り出されたゴミ

javascriptで半角英数だけ入力させる方法

コード

<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <title>ログイン画面</title>
  <script>
    function checkname() {
      var str1 = document.login.user_name.value;
      var lastone = str1.substring(str1.length - 1, str1.length);
      if (lastone.match(/[^A-Za-z0-9¥s.-]+/)) {
        correctstr1 = str1.substring(0, str1.length - 1);
        document.login.user_name.value = correctstr1;
        alert("半角英数で入力してください");
      }
    }

    function checkpass() {
      var str1 = document.login.password.value;
      var lastone = str1.substring(str1.length - 1, str1.length);
      if (lastone.match(/[^A-Za-z0-9¥s.-]+/)) {
        correctstr1 = str1.substring(0, str1.length - 1);
        document.login.user_name.value = correctstr1;
        alert("半角英数で入力してください");
      }
    }
  </script>
</head>

<body>
  <div class="login">
    <form action="login.php" method="post" name="login">
      ユーザ名
      <input type="text" name="user_name" placeholder="name" onKeyup="checkname()" oncopy="return false" onpaste="return false"
        oncontextmenu="return false">
      <br> パスワード
      <input type="password" name="password" onkeyup="checkpass()" oncopy="return false" onpaste="return false" oncontextmenu="return false">
      <br>
      <input type="submit">
    </form>
  </div>
</body>

</html>

終わりに

onpasteで、コピペを拒否できるようだ

ログイン画面のhtml側の処理を考えるだけでかなり勉強になった