Hoi Frenske123,
Ik heb eens gepeinsd.

Dit lijkt me een ontzettend lastig probleem, maar ik kan me wel voorstellen dat soms een automaatje handig kan zijn om telefoonnummers uit een bericht weg te filteren.
Bijvoorbeeld bij een dating-site:
- om te verhinderen dat mensen onnadenkend hun privacy te grabbel gooien;
- of om te verhinderen dat beroeps-vrijers/sters reclame gaan maken;
- of om andere ongein te verhinderen (bv. wraakberichten als: "Beste mensen, ik had een afspraak met Bartje27, maar dat is een ontzettende prolurk want .... - Nare ervaring. Bel 'm plat! Doe het zonder nummerherkenning, en bij voorkeur midden in de nacht! Zijn nummer is .......").
Ik denk dat javascript hier sowieso te onbetrouwbaar voor is. De controle zal met php (serverside) moeten gebeuren, wat door de bezoeker niet te beïnvloeden is.
Probleem 1: de notatie
Behalve de 06-nummers en de kengetallen met 3 cijfers zijn er ook kengetallen met 4 cijfers. Dat levert in de "gewone notatie" al 3 patronen die afgevangen moeten worden:
06-12345678
020-3456789
0123-456789
Maar iemand kan ook een internationale reeks geven, met landnummer en daar geldende (aantallen) getallen (!):
0031-612345678 (naar NL 06 nummer)
0031-203456789 (naar NL vast nummer)
0049-1234.... (naar Duitsland)
Dat kan ook geschreven worden als:
0031(6)12345678
0031(20)3456789
0031(123)456789
enz.
Daarmee kom je op de haakjes-notatie, die ook zonder landnummer wel gebruikelijk is:
(06) 12345678
(020) 3456789
(0123) 456789
Complicatie: hierboven zitten er ook spaties in!
Zelf maak ik graag gebruik van spaties om telefoonnummers makkelijker leesbaar/onthoudbaar te maken (hangt van de getallen af waar ik de spaties zet!), bv.:
06-123 00 456
020-34 999 56
020-345 66 88
0123-132 231
0123-12 14 16
Sommigen gebruiken puntjes waar ik spaties zet:
06-123.00.456
020-34.999.56
020-345.66.88
0123-132.231
0123-12.14.16
Of misschien wel midden-puntjes:
06-123·00·456
020-34·999·56
020-345·66·88
0123-132·231
0123-12·14·16
Terwijl anderen geen tussenstreepjes gebruiken, maar een slash:
06 / 123 00 456
020 / 34 999 56
020 / 345 66 88
0123 / 132 231
0123 / 12 14 16
Ook hier weer alle mogelijke varianten met spaties, puntjes en internationaal mogelijk!
Dan heb je ook kans op mensen die de 06 of het kengetal niet rechtstreeks bij het nummer zetten,
bv:
"Bel me in Amsterdam (020), nummer: 1234567."
Dan zouden ook alle 8-, 7- en 6-cijferige getallen verhinderd moeten worden.
Dit is wat me zo te binnen schiet.
O, nog een: een ZWSP-teken (
Zero
Width
SPace, zie bv.
hier) zou het filter ook om de tuin kunnen leiden. Ook dat moet gedetecteerd worden.
- Alles is voor het menselijk oog makkelijk te herkennen als telefoonnummer.
Maar voor automatische patroon-herkenning met reguliere expressies ("wat regulier?"

) ligt dat anders.
Al die haakjes, spaties, slashes en punten kunnen in principe wel gestript worden, maar maken het wel puur ingewikkeld!
Ik kan me vergissen, maar ik denk dat het een bijzonder veeltakkig beslisboompje zou moeten worden.
Probleem 2: de moedwilligheid
Wie moedwillig een telefoonnummer wil droppen, zal waarschijnlijk niet weten dat er een filter op zit dat de meeste gebruikelijke notaties onderschept. Die zal dus beginnen met een nummer in een "normale" notatie.
Ook iemand die onnadenkend een telefoonnummer in z'n bericht zet, zal geen moeite doen het nummer te verduisteren.
Dan kan je het volgende laten gebeuren (na de klik op de "verzend-knop" van het formulier):
- De php op de server signaleert het gebruik van een telefoonnummer, en zendt het formulier terug met gewist nummer, voorzien van een boodschap voor de invuller.
- De php op de server noteert tegelijkertijd de datum/tijd, de gebruikersnaam, het ingegeven telefoonnummer en het ip-adres van de inzender, en stopt dat in een kastje "telefoonpogingen" van de database.
- De php stuurt tegelijkertijd een email aan de moderator met dezelfde gegevens: "Telefoonpoging van gebruiker x".
De boodschap kan dan iets in deze geest zijn:
Er is geen andere keus dan op OK klikken, anders kom je niet bij het formulier terug.
De onnadenkenden zullen denken "Oeps, dat was niet de bedoeling", en het verder uit hun hoofd laten.
De boosdoeners zullen wellicht een andere notatie proberen.
Als die er ook uitgefilterd kan worden, krijgen ze een Laatste Waarschuwing (en de moderator weer een email-melding):
Eventueel kan ook in de Voorwaarden een boete-clausule staan: "Gebruiker gaat ermee akkoord dat hij/zij een onmiddellijk en onherroepelijk opeisbare boete verschuldigd is van (laten we zeggen) € 500,- indien een telefoonnummer in een bericht wordt geplaatst; onverlet de andere in deze Voorwaarden omschreven consequenties." - En dat dan mooi juridisch onderbouwd.
Wordt een derde poging onderschept (eventueel 1 week of 3 maanden later; zit in de database!), dan kan automatisch het account geblokkeerd worden, enz.
Wordt wel de eerste poging gesignaleerd, maar verder niets (als de boosdoener zo slim is iets anders te verzinnen), dan is in elk geval de moderator op scherp gezet. Die kan bv. een binnenkomend bericht na de eerste poging in de wacht zetten tot nadat hij/zij gekeken heeft of er niets illegaals gebeurt en toestemming voor plaatsing heeft gegeven.
Blijft over: de eerste poging wordt niet gesignaleerd, maar lukt wel. Dat is de volgende categorie.
Probleem 3: de notoire bedriegers
Die kunnen heel andere wegen bewandelen, waartegen geen kruid gewassen is.
Bijvoorbeeld:
"Bel me maar vrijblijvend! Tel: nulzes 123viervijf678."
of:
"Ik ben te bereiken op nummer O6-23Ol8497."
De nullen zijn hier hoofdletters o, de 1 van 18 is een kleine letter L. De weergave hangt van het lettertype af, maar de lezer zal gauw begrijpen wat de bedoeling is!
of:
Het telefoonnummer vrolijk verpakken in een image, als ook afbeeldingen bij de berichten kunnen worden meegezonden. Daar kan geen reg_ex tegenop!
of desnoods:
"Contact via mijn avatar!

"
enzovoorts!
=======
Mijn conclusie:
Je kan van alles en nog wat proberen automatisch te regelen, maar zoals Tha Devil al zei: waterdicht kan het nooit zijn.
Er zal toch een moderator van vlees en bloed aan te pas moeten komen.
- Verder zou trouwens dezelfde privacy-gevoeligheid kunnen spelen bij het opgeven van een gewoon adres *) of een email-adres in een textvak-bericht (of een echte naam, of een persoonlijk of commercieel webadres). Daar zijn helemaal lastig automaat-maatregelen tegen te treffen...
Succes!
Met vriendelijke groet,
CSShunter
___________
*) Aan de hand van een lijst met alle NL plaatsnamen zou je alle plaatsnamen automatisch kunnen laten blokkeren. Maar dan komt er bv. ook geen bericht meer door als "Gisteren mooie duinwandeling in Castricum gemaakt. Moet je ook eens doen!".