js自动检查验证用户输入是否正确onblue

亮术网 2020-06-11 本网原创

一般来说,当用户输入的时候都要检查输入数据是否正确,诸如只能输入数字却输入了字符、数据长度是否超标、不能输入特殊字符等。检查得比较多的通常是密码验证,并且要求自动及时检查,即用户输入一停止就检查。

网页中的用户输入自动检查验证,在客户端通过 js 来完成,即当用户输入停止后触发一个 javascript 事件,调用 js 的函数进入检查验证,不符合要求提示用户重新输入。这类检查验证有些 js 就能全部完成,有些需要与服务器通信才能完成,后者需要用 ajax 与服务器通信,根据服务器返回的值进行处理。

 

一、js自动检查验证用户输入的是否为数字

假设有一个文本框只能输入数字,不能输入字符,当用户输入完成后立即检查,示例代码如下:

html代码:

<div>
    手机号码:<input type="text" id="mobelId" maxlength="11" onblur="inputCheck()" />
  </div>

 

javascript代码:

<script type="text/javascript">
  function inputCheck() {
    var obj = document.getElementById("mobelId");
    if (!isNumber(obj.value)) {
      alert("产品价格只能输入11位数字!");
    }
  }
  function isNumber(str) { var rul = /^[0-9]{1,11}$/; return rul.test(str); }
  </script>

以上代码要求用户输入11位以内的手机号码,如果输入超11位数字,或者输入了字母、符号,则会返回要求重输入;当用户输入结束后,只要单击了任意位置(包括另一个文本框)就会检查。

 

 

二、js自动检查验证用户输入的字符是否超过规则长度

文本框都有限制用户输入多少个字符的属性,但不能区分中英文,也就是每个汉字也算一个字符,这与实际长度不符,所以需要准确统计用户输入字符的实际长度。

html元素:

<div>
    产品简介:<input type="text" id="prointro" maxlength="200" onblur="countTextLength()" style="width:600px;" />
  </div>

 

javascript代码:

<script type="text/javascript">
  function countTextLength() {
    var obj = document.getElementById("prointro");
    if (len(obj.value) > 200) {
      alert("产品简介只能输入200个字符!");
    }
  }

function len(str) {
    var n = 0;
    if (str == "") { return n; }
    var arr = str.split("");
    for (var i = 0; i < arr.length; i++) {
      if (arr[i].charCodeAt(0) < 299) {
        n++;
      }
       else {
         n += 2;
      }
    }
    return n;
  }
  </script>

以上代码只允许用户输入200个字符,也就是只能输入100个汉字,200个英文字母,超过这个长度将提示。