- La barra significa que debe cumplir alguna de las condiciones.
- Entre corchetes están los caracteres válidos.
- Entre llaves está cuantas veces se puede repetir uno de esos caracteres.
Por lo tanto, si quieres hacelo a mano, deberás comprobar estas cuatro expresiones. Si alguna es válida, entonces el patrón es válido
- [0-9]{10,11} - 10 a 11 caracteres numéricos.
- [0-9]{15,16} - 15 a 16 caracteres numéricos.
- [0-9]{18} - 18 caracteres numéricos.
- [A-Z0-9_]{10,50} - 10 a 50 caracteres alfanuméricos o el guión bajo.
Prueba esto:
Código Delphi
[-]
function ExpresionValida (s : string) : boolean;
var
i : integer;
begin
Result := True;
if ((Length(s) = 10) or (Length(s) = 11) or (Length(s) = 15) or (Length(s) = 16) or (Length(s) = 18)) then
begin
for i := 1 to Length(s) do
begin
if not (s[i] in ['0'..'9']) then
Result := False;
end;
end;
if (not Result) then
begin
if ((Length(s) >= 10) or (Length(s) <= 50)) then
begin
for i := 1 to Length(s) do
begin
if ((not (s[i] in ['A'..'Z'])) or (not (s[i] in ['0'..'9'])) or (s[i] = '_')) then
Result := False;
end;
end
else
Result := False;
end;
end;