如何使用JavaScript自动添加用户输入中的连字符



我正在尝试验证和调整用户输入以匹配格式:xxxxx或xxxxxx-xxxx如果用户输入5位以上,使用JavaScript可以自动添加连字符( - )的简单方法?

可以肯定的是!只需检查输入字符串具有多少个字符,如果是5,则将连字符添加到字符串:)

var input = document.getElementById("ELEMENT-ID");
input.addEventListener("input", function() {
  if(input.value.length === 5) {
    input.value += "-";
  }
}

尝试以下内容。

function add_hyphen() {
    var input = document.getElementById("myinput");
    var str = input.value;
    str = str.replace("-","");
    if (str.length > 5) {
        str = str.substring(0,5) + "-" + str.substring(5);
    }
    input.value = str
}
<input type="text" id="myinput" value="a" OnInput="add_hyphen()"></input>

anna,

最好的方法是使用正则表达式。您需要的是:

^[0-9]{5}(?:-[0-9]{4})?$

您将使用十个以下内容:

function IsValidZipCode(zip) {
        var isValid = /^[0-9]{5}(?:-[0-9]{4})?$/.test(zip);
        if (isValid)
            alert('Valid ZipCode');
        else {
            alert('Invalid ZipCode');
        }
    }

在您的html中这样称呼:

<input id="txtZip" name="zip" type="text" /><br />
<input id="Button1" type="submit" value="Validate"
onclick="IsValidZipCode(this.form.zip.value)" />

有关正则表达式的更多信息,这是一篇很好的文章:

Mozilla开发人员网络上的正则表达式

您可以尝试使用如下的简单JavaScript函数

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JS Bin</title>
  <script>
    function FN_HYPEN(){
    var input = document.getElementById("USER");
  if(input.value.length === 5) {
    input.value += "-";
  }
                       }
  </script>
</head>
<body>
<INPUT ID="USER" TYPE="TEXT" onKeypress="FN_HYPEN();"/>
</body>
</html>

相关内容

  • 没有找到相关文章

最新更新