Código Delphi
[-]
function filtraNombre(base:string):string;
const permitidos= ['A'-'Z','a'-'z','0'-'9','_'];
const letras = ['A'-'Z','a'-'z'];
var i:integer;
begin
result := EmptyStr;
if base[1] in letras then
for i:= 1 to length(base) do
if base[i] in permitidos then
result := result + base[i]
end;
end;
Que yo sepa, la primera letra debe la tabla debe estar entre la A y Z, después pueden usarse letras y números, así como el guión bajo. Sólo se permiten letras estandard del ascii (más que nada por compatibilidad).
Se permiten espacios, pero eso ensucia mucho el código después, por tanto, no lo he permitido.
Saludos