web-dev-qa-db-fra.com

Comment bloquer ou restreindre les caractères spéciaux de la zone de texte

J'ai besoin d'exclure des caractères spéciaux (%,&,/,",' etc.) de la zone de texte 

C'est possible? Devrais-je utiliser l'événement key_press?

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

dans ce mode est très très long = (

7
Federal09

Je suppose que vous essayez de ne conserver que des caractères alphanumériques et des espaces. Ajouter un événement de frappe comme celui-ci

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;
    }
}
12
Hossain Muctadir

vous pouvez utiliser ceci:

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

il bloque les caractères spéciaux et n'accepte que les int/nombres et les caractères

3
Francis Acosta

Le code ci-dessous n'autorise que les chiffres, les lettres, le retour arrière et les espaces. 

J'ai inclus VB.net parce qu'il y avait une conversion difficile à gérer.

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
2
CrazyPaste

le mieux pour moi:

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

il sera plus utile d'activer les touches delete, backspace ... etc

0
Hisham

nous pouvons le valider en utilisant un validateur d'expression régulière 

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>

vous pouvez aussi voir la démo ici https://www.neerajcodesolutions.com/2018/05/how-to-restrict-special-characters-in.html

0
Pooja

Vous pouvez utiliser l'événement 'Texte modifié' (JE CROIS (mais je ne suis pas sûr) qu'il soit déclenché lors d'un copier/coller). 

Lorsque l'événement est déclenché, appelez une méthode, par exemple PurgeTextOfEvilCharacters ().

Dans cette méthode, avoir un tableau des caractères que vous souhaitez "bloquer". Parcourez chaque caractère du texte .Text du contrôle TextBox et si le caractère se trouve dans votre tableau, vous ne le souhaitez pas. Reconstruisez la chaîne avec les caractères "ok" et vous voilà prêt à partir.

Je parie qu'il y a un meilleur moyen, mais cela me semble correct!

0
Andrew Mack