簡體   English   中英

C# - 僅包含字母和數字的文本框

[英]C# - Textbox with only letters and numbers

如何限制我的文本框只接受數字和字母? 它甚至不應該允許空格或類似“!”,“?”,“/”之類的東西。 只有az,AZ,0-9

試過這個,它根本不起作用

if (System.Text.RegularExpressions.Regex.IsMatch(@"^[a-zA-Z0-9\_]+", txtTag.Text))
{
    txtTag.Text.Remove(txtTag.Text.Length - 1);
}

甚至不確定那個txtTag.Text.Remove(txtTag.Text.Length - 1); 應該在那里,因為它使應用程序崩潰。

您不需要正則表達式:

        textBox1.Text = string.Concat(textBox1.Text.Where(char.IsLetterOrDigit));

這將刪除所有不是字母或數字的內容,並且可以將其放置在TextChanged事件中。 基本上,它獲取文本,將其拆分為字符,僅選擇字母或數字。 之后,我們可以將其連接回字符串。

另外,如果您想將插入符號放在文本框的末尾(因為更改文本會將其位置重置為0),則還可以添加textBox1.SelectionStart = textBox1.Text.Length + 1;

我的想法是你可以改變該控件的KeyPressedTextChanged事件,以檢查輸入的字符是數字還是字母。 例如,要檢查在文本框中添加的字符,可以執行以下操作:

myTextbox.KeyPress += new KeyPressEventHandler(myTextbox_KeyPress);



void myTextbox_KeyPress(object sender, KeyPressEventArgs e)
{
    if(e.KeyChar >= Keys.A && e.KeyChar <= Keys.Z)

    // you can then modify the text box text here

嘗試這個

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = !char.IsLetter(e.KeyChar) && !char.IsControl(e.KeyChar)
             && !char.IsSeparator(e.KeyChar) && !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
    }

首先,查看本文以獲取一些信息。

我認為您應該在客戶端執行的操作是在相應的HTML中添加pattern屬性。

<input type="text" name="foo" pattern="[a-zA-Z0-9_]" title="Please input only letters and numbers">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM