【问题标题】:How to check if the User input does not include any number while typing如何在输入时检查用户输入是否不包含任何数字
【发布时间】:2022-01-02 22:39:17
【问题描述】:

我有一个用户输入他的名字

我想立即检查他输入的值,如果它小于 4,我将创建一个 div 来保存他的错误

我也想检查输入是否有任何数字我会创建一个 div 也告诉他他不应该在他的名字中输入数字

所以这是我的 Html 代码第一

<div> <label> <span> First Name:  </span>  <input type="text" name="FirstName" id = "myInput" onkeyup="myFunction()" placeholder="Enter your First Name..." /> </label> </div>

这是我的java脚本函数

function is_number(input) {
  if(input === '')
      return false;
  let regex = new RegExp(/[^0-9]/, 'g');
  return (input.match(regex) === null);
}


function myFunction() {  
    const x = document.getElementById("myInput").value;
    for(let i = 0; i <= x.length; i++) {
    if (x.length < 4){
    document.getElementById("demo").innerHTML = "You Enterd less Than 4 Numbers"
  }
  else if(is_number(x)) {
    document.getElementById("demo").innerHTML = "First Name Should Not Have Digits in it"
  }
  else {
    document.getElementById("demo").style.display = "none";
  }
  }
}

【问题讨论】:

  • > If it's less than 4 If it is less than 4 chars of length,你的意思是?还有更多:你可以使用regex = new Regex(/[^0-9]/, "g"),但是形成基本的JS类型,形成性能(和理解)原因,最好直接使用regex = /[^0-9]/g之类的东西,因为新的将实例化一个对象,而不是简单的类型。
  • 正是我的意思 ,,, 我想创建一个函数 1- 检查名称字段是否为空且至少 4 个字符 2-该名称字段不包含任何数字 (0- 9)当用户写他的名字时,如果用户输入了一个数字错误消息将出现,如果他删除数字,错误消息消失

标签: javascript html forms input user-input


【解决方案1】:

使用它来清理输入:

function isValid(input) {
  let regex = /[A-Z]/i;
  if(!regex.test(input)) {
    document.getElementById("demo").innerHTML = "First name should not have digits in it"
  }

  if(input.length < 4) {
    document.getElementById("demo").innerHTML = "You entered less than 4 characters"
  }
}

/[A-Z]/ 模式只匹配字母字符,i 标志忽略字符大小写。 该模式匹配空字符串和数字。它还可以匹配 ' 等字符,因为它后面跟一个字母字符,所以像“O'brien”这样的名字就可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 2020-07-12
    • 2017-08-04
    • 2015-07-21
    • 2019-05-23
    相关资源
    最近更新 更多