Das ist doch kein Problem!
Die Sonderzeichen in dem String werden alle entweder mit dem OPCode XLATE oder mit der Built-in-Funktion %XLATE auf ein nicht zulässiges Sonderzeichen konvertiert. Dann wird entweder mit dem OPCode SCAN oder der Built-In-Funktion %SCAN geprüft, ob dieses Zeichen im String vorkommt.
... und fertig. Maximal 5 Code Zeilen

PHP-Code:
D Text            S            256A   Varying      
                                                   
D Ungueltig       S              4A   inz
('!;.?')  
D Ersetzen        S              4A   inz('****')
 *----------------------------------------------
/
Free                                                  
   Text 
= %XLate(UngueltigErsetzenText);        
   If %
Scan('*'Text) > *Zeros;                       
      
//Ungültige Zeichen
   
Else;
      
//Nur gültige Zeichen                                     
   
EndIf;                                 
/
End-Free 
Birgitta