Vérification des mots employés dans un champ text. [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
16 décembre 2004
-
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
-
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

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
35
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]]
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
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
Messages postés
9
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
16 décembre 2004

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.
Messages postés
9
Date d'inscription
jeudi 9 décembre 2004
Statut
Membre
Dernière intervention
16 décembre 2004

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('');
}
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
"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