如有字符串:123456高晓红  我想获取除去中文部分后的数字部分,即结果为:123456  
            23545lina     结果为:23545dephi中是否有类似这功能的函数?如果没有,应该怎么做写呢?各位大侠,谢谢了!

解决方案 »

  1.   

    val只能截獲字符串前面的數字但不能截獲諸如:"asdf123"這類的數字
      

  2.   

    function   MoneyToInt(const  sMoney:string):String;
      var
          I:Word;
          sResult: string;
      begin
          sResult:='';
          if   sMoney<>''   then
              for   I :=1 to  Length(sMoney)   do
                  if (sMoney[I] in ['0'..'9'])then
                      sResult := sResult + sMoney[I];
          try
              Result:=sResult;
          except
              Result:='';
          end;
      end; 
      

  3.   


    是这样预处理一下,再转好了
    不过,这个过程可能会把'123abc789'转成'123789',可能不符合需求
    需要加上选项:数字后出现非数字,是否立即结束
      

  4.   

    用正则表达式
    procedure TForm1.Button1Click(Sender: TObject);
    var
    reg: TPerlRegEx;
    begin
    reg := TPerlRegEx.Create(nil);
    reg.Subject := '123456高晓红';
    reg.RegEx   := '[^0-9]';
    reg.ReplaceAll;
    ShowMessage(reg.Subject);
    FreeAndNil(reg);
    end;