Vérification des mots employés dans un champ text.

Résolu
Mike Phoenix Messages postés 9 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 16 décembre 2004 - 11 déc. 2004 à 09:36
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 12 déc. 2004 à 12:46
Bonjour à tous,

J'ai un petit soucis avec un script tout simple et je suis débutant...

Il s'agit de faire une vérification de mots dans un champ text pour vérifier que certains mots vulgaires ne seront pas envoyés.

Le problème c'est que je ne sais pas comment faire pour analyser plusieurs mots et comment limiter la verification au terme seul pour éviter des refus intempestifs.

(ex. emPUTEr, CONstellation...)

Je vous envois le code qui ne détecte q'un seul mot:

<html>
<head>
<script>
function check(){
if(document.getElementById("message").value == "toto"){
document.forms[0].submit();
}
}
</script>
</head>

<center>
Analyseur de mots :

Renvois sur une page si le message contient
un mot litigieux (ex. toto)

<form action="reussi.html" method="post">
<textarea name="message" rows="4" cols="55" wrap="virtual"></textarea>

</center>
</form>

</html>

5 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
11 déc. 2004 à 11:45
bonjour,
un ch'tit exemple ?
<html>
<head>
<script type="text/javascript">
var interdits=new Array("con","pute");
/*
http://www.javascriptfr.com/forum.v2.aspx?ID=349409
*/
function check()
{
var re=/\w*/g;
var res=frm.message.value.match(re);
for(var i=0;i<res.length;i++)
{for (var j=0;j
</head>

<center>
Analyseur de mots :  

Renvois sur une page si le message contient
un mot litigieux (ex. toto)

<form	action="reussi.html" method="post"
name="frm"
onsubmit="return(check());">
<textarea name="message" rows="4" cols="55" wrap="virtual"></textarea>

</center>
</form>

</html> 

pas complètement testé...
à vérifier donc
Cordialement Bul. [Site] [[mailto:marcelBultez@Tiscali.fr Mail]]
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 déc. 2004 à 11:37
Salut

Faut commencer par décomposer chaque mot... Puis tu vérifie si chacun de ses mots apartient à un tableau de mots vulgaire...

J'ai posté un moteur de recherche à plusieurs mots il y a un moment, tu peux aller le voir...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Mike Phoenix Messages postés 9 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 16 décembre 2004
11 déc. 2004 à 12:27
Merci Bul,

Je n'ai pas encore pu le tester sur Mozilla, mais il fonctionne parfaitement sur IE.
Grace à ton aide je vais enfin pouvoir sécuriser un peu mon Livre d'Or.
Je pense que ce serait une exellente idée que tu post ton script car il peut être très utile et je n'ai jamais trouvé une fonction qui soit équivalente.

Cordialement Mike.
Mike Phoenix Messages postés 9 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 16 décembre 2004
11 déc. 2004 à 21:29
Re à tous,

Je me suis sérieusement penché sur ce script.

* J'ai un premier problème, comment faire pour les caractères seuls (ex. <, >, [, ], /, ect=)
J'ai trouvé une solution super lourde comme :

<script type="text/javascript">
function valide() {
var nomRef = document.formulaire.nom.value
var invalCar="0"
if (nomRef.indexOf("<") != -1)
{invalCar++;}
if (invalCar>0)
{invalid += ("Votre nom a \' "+ invalCar +" \' caractère(s) non valide\n"); return false;} }
</script>

Mais j'imagine qu'il existe une solution bien plus simple et que l'on pourrait intégrer au script de Bultez.

* Mon deuxième problème est de réussir à intégrer la capitalisation ou de retirer les espaces en début.
J'ai trouvé des scripts mais je n'arrive pas du tout à les comprendre :

// Supprime les espaces de début et de fin de chaine
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");

// Capitalisation (1ere lettre en majuscule)
function First2UpperCase(texte) {
var t = new Array();
for(j=0 ; j < texte.length ;j++) { if(j 0) t[j] texte.substr(j,1).toUpperCase();
else t[j] = texte.substr(j,1).toLowerCase();
}
return t.join('');
}

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
12 déc. 2004 à 12:46
"Grace à ton aide je vais enfin pouvoir sécuriser un peu mon Livre d'Or."=> la sécuritée se fait coté serveur et non coté client...

Si qqn veut te flooder par exemple, il va créer un pseudo navigateur robot..... Ce nav ne prendra pas en compte le javascript...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Rejoignez-nous