9

我需要从文本框中排除特殊字符(%,&,/,",'等)

可能吗?我应该使用 key_press 事件吗?

string one = radTextBoxControl1.Text.Replace("/", "");
                string two = one.Replace("%", "");
                //more string
                radTextBoxControl1.Text = two;

在这种模式下很长=(

4

7 回答 7

17

我假设您试图只保留字母数字和空格字符。添加这样的按键事件

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    var regex = new Regex(@"[^a-zA-Z0-9\s]");
    if (regex.IsMatch(e.KeyChar.ToString()))
    {
        e.Handled = true;
    }
}
于 2013-10-22T17:38:58.393 回答
6

你可以使用这个:

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

它阻止特殊字符,只接受整数/数​​字和字符

于 2014-11-10T10:00:47.027 回答
5

下面的代码只允许数字、字母、退格和空格。

我包括了 VB.net,因为我必须处理一个棘手的转换。

C#

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

VB.net

Private Sub textBoxSample_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBoxSample.KeyPress
    e.Handled = e.KeyChar <> ChrW(Keys.Back) And Not Char.IsSeparator(e.KeyChar) And Not Char.IsLetter(e.KeyChar) And Not Char.IsDigit(e.KeyChar) 
End Sub
于 2015-07-23T20:29:14.337 回答
0

对我来说最好的:

void textBoxSample_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = Char.IsPunctuation(e.KeyChar) ||  
                      Char.IsSeparator(e.KeyChar) || 
                      Char.IsSymbol(e.KeyChar);
    }

启用删除和退格键...等会更有用

于 2015-02-03T02:23:37.950 回答
0

您可以使用“Text Changed”事件(我相信(但不确定)这会在复制/粘贴时触发)。

当事件被触发时,调用一个方法,比如 PurgeTextOfEvilCharacters()。

在此方法中,有一个要“阻止”的字符数组。遍历 TextBox 控件的 .Text 的每个字符,如果在数组中找到该字符,则不需要它。用“okay”字符重建字符串,你就可以开始了。

我打赌有更好的方法,但这对我来说似乎没问题!

于 2013-10-22T17:13:26.570 回答
0

我们可以使用正则表达式验证器来验证它

ValidationExpression="^[\sa-zA-Z0-9]*$"

<asp:TextBox runat="server" ID="txtname" />
        <asp:RegularExpressionValidator runat="server" ControlToValidate="txtname"
            ForeColor="Red" SetFocusOnError="true" Display="Dynamic"
            ErrorMessage=" Restrict for special characters" ID="rfvname"
            ValidationExpression="^[\sa-zA-Z0-9]*$">

        </asp:RegularExpressionValidator>

你也可以在这里看到演示 https://www.neerajcodesolutions.com/2018/05/how-to-restrict-special-characters-in.html

于 2018-06-12T18:37:15.380 回答
0

另一种排除各种字符选择(例如 %,&,',A,b,2)的方法是在 TextBox KeyPress 事件处理程序中使用以下内容:

e.Handled = "%&'Ab2".Contains(e.KeyChar.ToString());

要在排除列表中包含双引号,请使用:

e.Handled = ("%&'Ab2"+'"').Contains(e.KeyChar.ToString());

注意:这是区分大小写的。

于 2019-09-16T20:31:18.243 回答