如何验证输入文本是不是允许第一位和第二位数字仅为字母

Posted

技术标签:

【中文标题】如何验证输入文本是不是允许第一位和第二位数字仅为字母【英文标题】: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;
        


       
        
       
    

【问题讨论】:

【参考方案1】:

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

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

function test() 
  var textboxContent = document.getElementById("input").value;
  var passed = /^[a-z]2-\d5$/.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") $ 匹配输入的结尾。用于使您不匹配输入的一部分

【讨论】:

以上是关于如何验证输入文本是不是允许第一位和第二位数字仅为字母的主要内容,如果未能解决你的问题,请参考以下文章

取模(取余)运算小结规律——用于数字加密以及破译

程序48

初学python算法100例-案例29 判断回文数

java基础练习 20

data encryption

Java加密程序小例子