在文本框中只允许前两个和后两个是字母,中间是数字(例如 EE123456789IN)

Posted

技术标签:

【中文标题】在文本框中只允许前两个和后两个是字母,中间是数字(例如 EE123456789IN)【英文标题】:Allow only First two and last two are alphabets and rest in between are numeric(e.g EE123456789IN) in text box 【发布时间】:2019-09-23 07:19:04 【问题描述】:

嘿,我正在尝试验证一个文本框,以获取前两个和后两个字符是字母,其余的是介于 13 长度之间的数字。例如 EE123456789IN 。如何在文本框中验证这一点,并在提交按钮上进行检查。`

function Validate_Post() 
  var tb = document.getElementById("<%=txt_SpeedPost.ClientID%>").value;
  var a = tb.charAt(0);
  var b = tb.charAt(1);
  var c = tb.charAt(11);
  var d = tb.charAt(12);

  if ((a != 'E' && b != 'E') || (c != 'I' && d != 'N') || d != 'N') 
    alert("Invalid Speed Post Ref. No The Speed Post Ref No must be like this EE123456789IN") enter code here
  

  for (var i = 3; i < 11; i++) 
    if ((tb.charAt(i) >= 48 && tb.charAt(i) <= 57) || (tb.charAt(i) >= 96 && tb.charAt(i) <= 126)) 
      alert("Enter Number after EE e.g EE123456789IN")
    
  
  return true



<asp:Button ID="Btn_submit" runat="server" Text="SUBMIT" align="center" Width="168px " OnClick="Btn_submit_Click" OnClientClick="Validate_Post();"  style="font-weight: 700"/>

我想要这样的结果,文本框应该验证,例如 EE123456789IN,最大长度应该是 13,文本框只接受这种输入。如果不是,那么它将在提交期间显示错误。你能帮我解决这个问题吗?

【问题讨论】:

C#:bool ok = text.StartsWith("EE") &amp;&amp; text.EndWith("IN");。您的情况似乎对 ands 和 ors 有点犹豫不决。((另外:在非印度英语中,字母表是一个 set 字符而不是单个字符!所以是非印度英语网站)) 你是Kharoti吗? 【参考方案1】:

我不知道 ASP.NET,但是你可以用没有 javascript 的纯 html 来做

<form action='/somewhere' method='post'>
  <input type='text' pattern='[A-Z]2\d9[A-Z]2' required />
  <input type='submit' />
</form>

【讨论】:

【参考方案2】:

请使用以下代码,如果您遇到任何问题或需要对其进行任何更改,请告诉我。

  SpeedPost: 
  <asp:TextBoxID="txt_SpeedPost" runat="server" maxlength=13 />
  <asp:Button ID="Btn_submit" runat="server" Text="SUBMIT" align="center" Width="168" 
  OnClick="Btn_submit_Click" OnClientClick="return Validate_Post();"  style="font- 
  weight: 700"/>

  <script>
  function Validate_Post() 
   var tb = document.getElementById("<%=txt_SpeedPost.ClientID%>").value;
   var length = tb.length;
   var first2 = tb.substr(0, 2);
   var last2 = tb.substr(length - 2, length);
   //alert(first2 + '::' + last2);

    var isAlphabet = allLetter(first2+last2);
   //if(first2 != 'EE' || last2 != 'IN')
    if(!isAlphabet)
   
     alert("Invalid Speed Post Ref. No The Speed Post Ref 
       No must be like this EE123456789IN"); 
     return false;
   

   var centerLength = length - first2.length - last2.length;
   var centerChars = tb.substr(2, centerLength);
   //alert(centerChars);
   if (isNaN(centerChars)) 
   
    // not a number
      alert('not a number');
      return false;
   

   return true;
   


   function allLetter(inputtxt)
   
      var letters = /^[A-Za-z]+$/;
       if(inputtxt.match(letters))
       
          return true;
        
       else
        
            return false;
         
    
  </script>

【讨论】:

感谢很多帮助 ,,,, 我仍然对这个函数有问题 allLetter(inputtxt) var letters = /^[A-Za-z]+$/; if(inputtxt.value.match(letters)) return true; 否则 返回假; 其余代码工作正常 对不起,我没有测试这么多代码,让我更正并更新它 您好,我更新了 allLetter() 方法,稍作改动,请检查一下,如果您仍然遇到任何问题,请告诉我。如果此解决方案有助于或解决您的问题,请点赞并将其标记为正确答案。

以上是关于在文本框中只允许前两个和后两个是字母,中间是数字(例如 EE123456789IN)的主要内容,如果未能解决你的问题,请参考以下文章

如何在mysql中只允许字母数字值

C# winform 程序中如何限制一个文本框中只输入数字和字母呢?

如何使用 jQuery 在 HTML 输入框中只允许数字空间和分数(1 1/2)格式?

kendo数字文本框配置,用于在文本框中输入时仅限制两个十进制值

如何在 ASP.NET 文本框中仅允许信用卡/借记卡号码格式

为啥我不能在我的 pygame 文本框中输入超过 1 个字母? [复制]