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.
Ceci étant dit ton code (à mettre entre balises ) 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 :
- <html>
- <body>
- <p>123 abc</p>
- <p>04 72 52 37 77</p>
- <p> juste des espaces: </p>
- <p> +++++++++++++++++++</p>
- <script language="Javascript">
- 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>
- </body>
- </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