【问题标题】:How to verify that the input text allows the first and second digits to be only letters如何验证输入文本是否允许第一位和第二位数字仅为字母
【发布时间】:2020-12-17 16:13:45
【问题描述】:

我需要验证输入文本,前 2 位数字在添加连字符后仅是字母,最后是 5 位数字。

格式示例:aa-12345

现在我有

<asp:TextBox ID="txtCodigoTopografo" onkeydown="test(this)"   runat="server"></asp:TextBox>

function test(e) {
        console.log(e);

        switch (e.value.length) {

            case 0:
                if (e.value)
                e.value = e.value.replace(/[^a-z]/gi, '');
                break;

            case 1:
                e.value = e.value.replace(/[^a-z]/gi, ''); 
                break;
            case 2:
               e.value = e.value.replace(/[^0-9]/gi, '');
                break;
            case 3:
                e.value = e.value.replace(/[^0-9]/gi, '');
              
                break;
        }


       
        
       
    }

【问题讨论】:

    标签: javascript c# webforms


    【解决方案1】:

    您当前的方法是尝试用正则表达式替换东西。相反,请使用正则表达式来验证您的输入字符串格式是否正确。

    此正则表达式假定字母必须小写。如果您允许大小写,您可以将[a-z] 更改为[A-z]

    function test() {
      var textboxContent = document.getElementById("input").value;
      var passed = /^[a-z]{2}-\d{5}$/.test(textboxContent);
    
      if (passed) {
        document.getElementById("result").textContent = "Passed!";
      } else {
        document.getElementById("result").textContent = "Failed!";
      }
    }
    <input type="text" id="input" placeholder="Type here!" oninput="test()" />
    <p id="result"></p>

    正则表达式的解释:

    ^ 匹配输入的开头。用于使您不匹配输入的一部分 [a-z] 匹配小写字母... {2} ...2 次(您可以改为“[a-z][a-z]”) - 匹配连字符 \d 匹配一个数字... {5} ...5 次(你可以改为 "\d\d\d\d\d") $ 匹配输入的结尾。用于使您不匹配输入的一部分

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 2018-04-22
      相关资源
      最近更新 更多