我可以让我的文本框只允许L& P表示用户输入的两个字母。例如:LP12345678901。我希望这个例子能够使问题具体化......
我试过这个
if(myTextBox.Text.StartsWith("LP"))
我也尝试了正则表达式...但我们不能在字母表中具体说明吗?
答案 0 :(得分:1)
试试这段代码:
private void myTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (myTextBox.Text.Length == 2)
{
if (myTextBox.Text.StartsWith("LP"))
{
//yourcode
}
else
{
myTextBox.Text = string.Empty;
}
}
}
答案 1 :(得分:1)
这会对你有帮助。
function Valid() {
var re = "^[LP][0-9]{11}$";
var str = document.getElementById("txtTSection").value;
var myArray = str.match(re);
if (myArray == null) {
alert("Incorrect Format");
$("#txtTSection").css("border-color", "red");
return false;
}
else {
$('#txtTSection').css('border-color', '');
}
}
<asp:TextBox ID="txtTSection" runat="server" CssClass="form-control" TabIndex="1" MaxLength="13" onfocusout="Valid()" ></asp:TextBox>
答案 2 :(得分:0)
这不是技术解决方案,而是UX建议:
如果我总是要输入&#34; LP&#34;作为第一个字母,我不允许输入不同的字母或数字,然后不要让我每次输入。你已经决定&#34; LP&#34; 是前两个字母。我再没有打字就没有意义了。我无法从中获得任何好处。即使我完美地输入它,我能达到的最好结果是&#34;没有错误信息&#34;。
如果你的前两个字母必须是&#34; LP&#34;然后把&#34; LP&#34;作为文本框之前的标签,并使用户只输入数字。当您使用用户输入的内容时,请使用&#34; LP&#34;作为前缀。
答案 3 :(得分:0)
public static bool ValidateSerNo(string ser)
{
if (!string.IsNullOrEmpty(ser))
{
if (ser.Trim().Length == 11)
{
if (ser.Trim().ToUpper().Substring(0, 2) == "LP")
{
if (Microsoft.VisualBasic.Information.IsNumeric(ser.Substring(2, 9)))
{
return true;
}
}
}
}
return false;
}
private void btn_Save_Click(object sender, EventArgs e)
{
if ((BattVoltMmnt.ValidateSerNo(txtbox_Serialno.Text.Trim().ToUpper()) == false))
{ MessageBox.Show("Enter correct serial number");
}
}