This is version is penultimate version :)
'127.000. 0 .01 ' result is '127.0.0.1'
I tested this in:
Kubuntu 13.10 x64
fpc svn update 25845
lazarus svn update 43320

function IP4OK(pT: String): String;
var r  : TRegExpr;
    i,j: Integer;

    function My_Trim(S : String): String;
    Const myWhiteSpace = [#0..#32];
    var I: Integer;
    begin
     Result := '';
     Try
      I := 1;
      while I<=Length(S)do Begin
       if not(S[I]in MyWhiteSpace)then Result := Result + S[I];
       Inc(I,1);
      end;
     Except
      Result := '';
     end;
    end;
begin
  try
  Result := '';
  r := TRegExpr.Create;
  r.Expression := '^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$';
  pT := My_Trim(pT);
  if r.Exec(pT) then begin
    for i := 1 to 4 do begin
      J := StrToInt(r.Match[i]);
      if J > 255 then begin
          Result := '';
          Break;
      end else begin
        if Result<>''then Result := Result + '.';
        Result := Result + IntToStr(J);//for delete space and zero on left
      end;
    end;
  end;
  finally
    r.Free;
  end;
end;

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to