Interdiction de mots dans un textarea + limitation du nombre de caractères
Script posté par : SirJoJO Vous aussi, postez vos scripts en cliquant ici . Description Ce script permet d'interdire certains mots clefs dans un textarea, et de limiter ce dernier à un certain nombre de caractères.
Compatibilité :
Chiffres : Date de création : 27/07/2004
Dernière modif : -
Visites de la page : 18662
Envois par mail : 408
Exemple :
Les mots wagon, clown et clavier sont bannis. Essayez de les taper :)
Le code :
Entre <HEAD> et </HEAD> :<script type="text/javascript">
// Mots interdits. (ne tient pas compte de la casse : 'WaGoN' sera détecté comme 'wagon' )
var mots_interdits = new Array('wagon', 'clown', 'clavier');
// Si la variable suivante est à true, les mots interdits sont remplacés par des étoiles.
// Sinon, il sont effacés.
var RemplacementEtoiles = true;
// Nombre de caractères maximum du textarea
var Nombre_Caracteres_Maximum = 200;
// Nombre de caractères minimimal à partir duquel il n'y a plus de doute :
// Le mot qui est scanné est bien un mot interdit.
// Valeur par défaut : 4
// EXEMPLE :
// Mettez le mot 'con' dans le tableau des mots interdits.
// Tapez le mot conSpiration.
// Mettez le curseur du textarea juste avant le S.
// Tapez un espace. ===> le mot 'con' est remplacé.
// Si vous mettez la variable suivante à 3, et que vous recommencez l'opération, vous ne pourrez pas taper le mot conspiration.
var Constante_Doute = 4;
</script>
<script type="text/javascript" src="limitation.js"></script>
Entre <BODY> et </BODY> :<form>
<textarea name="message" onkeyup="Compter(this, this.form.CharRestant);" style="width:30em; height:15em;"></textarea>
<br />
Nombre de caractères restant : <input type="text" name="CharRestant" size="2" disabled="disabled">
</form>
Dans un fichier nommé limitation.js placé dans le même repertoire que votre page :var StrLen;
var Contenu;
Constante_Doute--;
function Etoiles(nb) {
v = '';
j=0;
while(j<nb) {
v += '*';
j++;
}
if(!RemplacementEtoiles) v = '';
return v;
}
function ReInit(valeur, nb, bool) {
if(bool == undefined) bool = false;
v = Etoiles(nb);
espace = (RemplacementEtoiles) ? ' ' : '';
Contenu = (! bool ) ? (valeur + v) : (v + espace + valeur);
StrLen = Contenu.length;
}
function Compter(Target, compteur) {
ReInit(Target.value, -1);
for(i=0; i<mots_interdits.length; i++) {
reg = new RegExp(' '+mots_interdits[i]+' ', 'gi');
v = ' '+Etoiles(mots_interdits[i].length)+' ';
if((!RemplacementEtoiles)&&(i==0)) v += ' ';
ReInit(Contenu.replace(reg, v), -1);
if(Contenu.substring(0, mots_interdits[i].length+1).toLowerCase() == mots_interdits[i].toLowerCase()+' ')
ReInit(Contenu.substring(mots_interdits[i].length+1, StrLen), mots_interdits[i].length, true);
if((Contenu.substring(StrLen-mots_interdits[i].length, StrLen).toLowerCase() == mots_interdits[i].toLowerCase()) && (mots_interdits[i].length>Constante_Doute))
ReInit(Contenu.substring(0, StrLen-mots_interdits[i].length), mots_interdits[i].length);
/*
script par SirJojO ===> forums http://www.editeurjavascript.com/
*/
}
if (StrLen > Nombre_Caracteres_Maximum ) {
Erreur = false;
for(i=0; i<mots_interdits.length; i++) {
if(Contenu.substring(StrLen-mots_interdits[i].length, StrLen).toLowerCase() == mots_interdits[i].toLowerCase()) {
ReInit(Contenu.substring(0, StrLen-mots_interdits[i].length), mots_interdits[i].length, true);
Erreur = true;
}
}
if(!Erreur) ReInit(Contenu.substring(0,Nombre_Caracteres_Maximum), -1);
}
Target.value = Contenu;
compteur.value = Nombre_Caracteres_Maximum-StrLen;
} Si vous ne savez pas comment créer le fichier limitation.js, demandez a recevoir le script par email, il vous sera alors envoyé en pièce jointe ! Sinon, consultez la FAQ du site.
Commentaires : Au moment de la saisie, les mots en question sont, soit automatiquement effacés, soit remplacés par des étoiles (au choix).
Un compteur de caractères est également présent : vous devez spécifier le nombre de caractères maximum du textarea. Le décompte apparaît dans un champs texte désactivé.
Pour la configuration, voir les commentaires.
Services email :
Je désire recevoir ce script par email
Je désire recevoir un email en cas de modification de ce script
Je désire m'abonner à la newsletter de l'éditeur JavaScript
Les annotations des visiteurs : De Inconnu2 - le 14-03-2006 quand tu copie plusieurs fois de suite ça enleve le premier seuleument
>> Poster une annotation sur ce script