Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 17-09-2018
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
He corregido algunos errores después de probarlo.
Código Delphi [-]
function ExpresionValida (s : string) : boolean;
var
  i : integer;
begin
  // Asumo que no es válido
  Result := False;

  // Si es una de las tres primeras opciones, compruebo que sean solo numeros
  if ((Length(s) = 10) or (Length(s) = 11) or (Length(s) = 15) or (Length(s) = 16) or (Length(s) = 18)) then
  begin
    Result := True;
    // Recorro la cadena
    for i := 1 to Length(s) do
    begin
      // Si no es un número, la cadena no cumple los requisitos
      if not (s[i] in ['0'..'9']) then
        Result := False;
    end;
  end;

  // Si no cumple con las expresiones regulares anteriores compruebo la cuarta opción.
  if (not Result) then
  begin
    // Debe tener entre 10 y 50 caracteres
    if ((Length(s) >= 10) and (Length(s) <= 50)) then
    begin
      Result := True;
      for i := 1 to Length(s) do
      begin
        // Debe ser una letra mayúscula o un número o el guión bajo.
        if ((not (s[i] in ['A'..'Z'])) and (not (s[i] in ['0'..'9'])) and (s[i] = '_')) then
          Result := False;
      end;
    end;
  end;
end;

Código:
[2018-09-17 10:53:07.856] 123456789 Valido False
[2018-09-17 10:53:07.856] 1234567890 Valido True
[2018-09-17 10:53:07.856] 12345678901 Valido True
[2018-09-17 10:53:07.856] 123456789012 Valido True
[2018-09-17 10:53:07.856] 1234567890123 Valido True
[2018-09-17 10:53:07.856] 12345678901234 Valido True
[2018-09-17 10:53:07.856] 123456789012345 Valido True
[2018-09-17 10:53:07.856] 1234567890123456 Valido True
[2018-09-17 10:53:07.856] 12345678901234567 Valido True
[2018-09-17 10:53:07.856] 123456789012345678 Valido True
[2018-09-17 10:53:07.856] 1234567890123456789 Valido True
[2018-09-17 10:53:07.866] 12345678901234567890 Valido True
[2018-09-17 10:53:07.866] A23456789 Valido False
[2018-09-17 10:53:07.866] A234567890 Valido True
[2018-09-17 10:53:07.866] A2345678901 Valido True
[2018-09-17 10:53:07.866] A23456789012 Valido True
[2018-09-17 10:53:07.866] A234567890123 Valido True
[2018-09-17 10:53:07.866] A2345678901234 Valido True
[2018-09-17 10:53:07.866] A23456789012345 Valido True
[2018-09-17 10:53:07.866] A234567890123456 Valido True
[2018-09-17 10:53:07.866] A2345678901234567 Valido True
[2018-09-17 10:53:07.866] A23456789012345678 Valido True
[2018-09-17 10:53:07.866] A234567890123456789 Valido True
[2018-09-17 10:53:07.866] A23456789012345678901234567890123456789012345678901 Valido False
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Componente para Pago Electrónico en Delphi 7 lgarcia Varios 2 25-02-2015 14:30:01
validar usuario con DNI electrónico hibero Linux 5 19-12-2009 11:44:19
Validar cuenta bancaria paladincubano Varios 2 04-12-2008 18:03:59
reporte para un recibo de sueldo ariadna Impresión 1 20-09-2005 03:12:44
¿cómo accedo a mi cuenta de correo eléctrónico para leer mis mensajes? nuri Internet 1 28-04-2005 17:20:01


La franja horaria es GMT +2. Ahora son las 22:22:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi