Como pegar somente os números de uma String?

DAVID CANDIDO DA SILVA

DAVID CANDIDO DA SILVA Publicado 17/11/2017 


Função que recupera só os números contidos em uma string.

Em versões unicode é necessário declarar System.SysUtils.

Segue o código fonte da função:


function GetStrNumber(const S: string): string;
var
  vText : PChar;
begin
  vText := PChar(S);
  Result := '';
    while (vText^ <> #0) do
  begin
    {$IFDEF UNICODE}
    if CharInSet(vText^, ['0'..'9']) then
    {$ELSE}
    if vText^ in ['0'..'9'] then
    {$ENDIF}
      Result := Result + vText^;
      Inc(vText);
  end;
end;


Exemplo de uso:


procedure TForm1.Button1Click(Sender: TObject);
begin
  // vai mostrar só os números que estavam na string.
  ShowMessage(GetStrNumber('g4dfg46dSsgGGS454S700DG%#$76dfsd'));
    ShowMessage(GetStrNumber('KsXlTo14PMnmQ6a'));
end;
 

Voltar ao topo