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 : 26635
Envois par mail : 475
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 De andr1107 - le 28-07-2011 Bonjour
Ce sript ne supprime que le premier mot de mon texte,(il fait parti des mots interdits) et les mots interdits précédés d'un espace....Mon texte est collé dans la textarea il n'est pas tapé au clavier.
C'est dommage je cherche juste un script qui supprime certains mots dans une textarea, mais tous ceux que j'ai testé ne fonctionnent pas bien. De andr1107 - le 28-07-2011 J'ai trouvé d'ou venait MON l'erreur:
un espace de trop ou de moins dans "limitation.js".
désolé pour mon message précédent.
>> Poster une annotation sur ce script