Code snippet

Code snippet - HTML/CSS - Programmation

Marsh Posté le 28-06-2017 à 22:07:03    

Bonsoir à tous,
 
J'ai crée il y a quelques mois une market place de location entre particuliers. Elle comprend une messagerie qui permet aux utilisateurs de communiquer entre eux  pour échanger sur les objets à louer. Évidement, sont rapidement échangés adresses mail et numeros de portables ...
 
Je viens de tester un code snippet pour interdire les échanges de contacts. Ça marche bien pour les adresses mail, mais pas du tout pour les numeros de telephone.
 
Quelqu'un peut me dire ce qui ne va pas ?
 
 
 
<script> // For hiding contact details (V: 0.1 - 2017-04-24)  
 
var targets = [
 
// phone numbers
 
/[+-\/\.\)\(\d\s]{7,22}/,
 
// emails
 
/([-\w\d\.]+?)(\s+\(?at\)?\s+|\s*@\s*|\s*([\[\]@]){3}\s*)([-\w\d\.]*?)\s*(dot|\.|\[dot\]|\[.\])\s*(\w+)/,
 
// skype usernames
 
/skype([\s-]?username)?\s?(:|at|with)?\s?\"?\S{3,16}\"?/i
 
];
 
replacement_text = '[sensitive information hidden]'
 
var tid = setInterval( function () {
 
    var paragraphs = document.getElementsByTagName('p')
 
    for (var i = 0; i < paragraphs.length; i++) {
 
         
 
        for (var j = 0; j < targets.length; j++) {
 
            paragraphs[i].innerHTML = paragraphs[i].innerHTML.replace(targets[j], replacement_text);
 
        }
 
    }
 
     
 
    if ( document.readyState !== 'complete' && paragraphs.length < 1) return;
 
    clearInterval( tid );
 
}, 1 );
 
</script>
 
 
Merci d'avance !!!
 
Bri
 

Reply

Marsh Posté le 28-06-2017 à 22:07:03   

Reply

Marsh Posté le 28-06-2017 à 22:42:13    

Euh désolé pour le HS, mais pourquoi vouloir interdire à des gens d'échanger ce genre d'infos? De toute façon si tu veux vraiment "censurer" il faut faire ça côté serveur, pas avec du JS côté client car on peut contourner facilement (vrai aussi pour du traitement côté serveur d'ailleurs, un humain c'est plus malin qu'un script). Et perso un site qui me fait chier avec ce genre de trucs j'évite. :o

 

Ceci étant dit ton code (à mettre entre balises http://forum-images.hardware.fr/icones/message/c.gif) marche très bien, même si il y a quelque "false positives". À défaut d'avoir ton code complet j'ai rajouté le minimum de truc nécessaires pour faire tourner le script... J'ai pas regardé les deux autres Regex.

Code :
  1. <html>
  2. <body>
  3. <p>123 abc</p>
  4. <p>04 72 52 37 77</p>
  5. <p> juste des espaces:                         </p>
  6. <p> +++++++++++++++++++</p>
  7. <script language="Javascript">
  8. var targets = [
  9. // phone numbers
  10. /[+-\/\.\)\(\d\s]{7,22}/,
  11. // emails
  12. /([-\w\d\.]+?)(\s+\(?at\)?\s+|\s*@\s*|\s*([\[\]@]){3}\s*)([-\w\d\.]*?)\s*(dot|\.|\[dot\]|\[.\])\s*(\w+)/,
  13. // skype usernames
  14. /skype([\s-]?username)?\s?(:|at|with)?\s?\"?\S{3,16}\"?/i
  15. ];
  16. replacement_text = '[sensitive information hidden]'
  17. var tid = setInterval( function () {
  18.     var paragraphs = document.getElementsByTagName('p')
  19.     for (var i = 0; i < paragraphs.length; i++) {
  20.         for (var j = 0; j < targets.length; j++) {
  21.             paragraphs[i].innerHTML = paragraphs[i].innerHTML.replace(targets[j], replacement_text);
  22.         }
  23.     }
  24.     if ( document.readyState !== 'complete' && paragraphs.length < 1) return;
  25.     clearInterval( tid );
  26. }, 1 );
  27. </script>
  28. </body>
  29. </html>
 

EDIT: Le n° de téléphone vient des mentions légales de hw.fr, je pense que je peux le laisser dans le texte...


Message édité par rat de combat le 28-06-2017 à 22:42:51
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed