在文本框中只允许前两个和后两个是字母,中间是数字(例如 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") && 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)的主要内容,如果未能解决你的问题,请参考以下文章
C# winform 程序中如何限制一个文本框中只输入数字和字母呢?
如何使用 jQuery 在 HTML 输入框中只允许数字空间和分数(1 1/2)格式?
kendo数字文本框配置,用于在文本框中输入时仅限制两个十进制值