首页 > 解决方案 > 在文本框中只允许前两个和后两个是字母,中间是数字(例如 EE123456789IN)

问题描述

嘿,我正在尝试验证一个文本框,以获取前两个和后两个字符是字母,其余的是介于 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,文本框只接受这种输入。如果不是,那么它将在提交期间显示错误。你能帮我解决这个问题吗?

标签: javascriptc#jqueryvalidation

解决方案


我不知道 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>

推荐阅读