在文本框中仅允许前两个字母和后两个字母是字母,中间的其余部分是数字(例如EE123456789IN)

时间:2019-05-05 12:26:21

标签: javascript c# jquery validation

嘿,我正在尝试验证一个文本框,以使前两个字符和后两个字符是字母,其余的都是介于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,文本框仅接受此类输入。如果没有,它将在提交期间显示错误。你能帮我这个忙吗?

2 个答案:

答案 0 :(得分:2)

我不了解ASP.NET,但是您可以使用不带Javascript的纯HTML来实现

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

答案 1 :(得分:0)

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

  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>