La désactivation de certains caractères spéciaux dans la zone de texte
Hé les gars, je suis en train de penser à des façons de désactiver des utilisateurs à partir de la saisie de certains caractères spéciaux comme < et >. Mais je tiens à utiliser des points et des virgules et des points d'interrogation et points d'exclamation et des citations. J'ai trouvé ce bout de code mais il ne semble pas permettre à n'importe quel caractère spécial.:
<script type="text/JavaScript">
function valid(f) {
!(/^[A-zÑñ0-9]*$/i).test(f.value)?f.value = f.value.replace(/[^A-zÑñ0-9]/ig,''):null;
}
</script>
- Quel est le signe dièse
#
, le tilde~
,plus
etminus
? Fantaisie des tirets à partir de Word?äöü
trémas? La création d'un sane liste de caractères autorisés est fou la quantité de travail. Est-ce pour empêcher les gens de l'injection de HTML? Il y a de meilleures façons de le faire. - Puisque les gens peuvent désactiver le JS, ce n'est pas efficace de toute façon (pas par lui-même au moins).
Vous devez vous connecter pour publier un commentaire.
Il y a plusieurs manières de le faire, aucun d'entre eux sont un bon moyen d'aller tho, mais nous y reviendrons.
vous pouvez lier à
onkeyup/onkeydown/onkeypress
événements sur l'élément et d'annuler des événements pour les caractères que vous avez bloqués. Cela ne va pas empêcher les gens de coller les caractères dans le champ de mais.Vous pouvez lier à la
onchange
cas de l'élément et de leur suppression de la liste noire des caractères à partir d'elle, une fois que l'utilisateur est effectué de la saisie.Le problème avec n'importe quel type de désinfection comme ça en javascript, c'est qu'il est trivial pour un utilisateur avec un petit peu de savoir-faire, de contourner ces mesures et toujours télécharger la délinquance de caractères pour le serveur de toute façon.
Donc, si vous ne souhaitez pas autoriser les caractères spéciaux dans les générées par l'utilisateur d'entrée, vous devez soit
>
et<
pour>
et<
par exemple avant de sortir n'importe où sur votre page web.Essayez avec cette...
pourquoi ne pas simplement de vérifier le caractère pressé "onKeyDown" événement?
Cette obtient tout simplement la touche qui a été pressée, et si elle est valide retourne true, sinon false, ce qui, à terme, détermine si la clé est écrit dans le textarea ou pas