我正在开发一个程序来验证CPF,这是我国的一种文件。我已经完成了所有的数学运算。但是在输入Edit1中,用户将插入如下:
123.456.789-00
我必须得到的数字,没有连字符和点数,我的计算值得。
我是Delphi的新手,但我觉得这很简单。我怎样才能做到这一点?谢谢大家
答案 0 :(得分:4)
您可以使用
text := '123.456.789-00'
text := TRegEx.Replace(text, '\D', '')
此处,\D
匹配任何用空字符串替换的非数字符号。
结果为12345678900
(请参阅regex demo)。
答案 1 :(得分:1)
使用David的建议,迭代输入字符串并删除不是数字的字符。
{$APPTYPE CONSOLE}
function GetNumbers(const Value: string): string;
var
ch: char;
Index, Count: integer;
begin
SetLength(Result, Length(Value));
Count := 0;
for Index := 1 to length(Value) do
begin
ch := Value[Index];
if (ch >= '0') and (ch <='9') then
begin
inc(Count);
Result[Count] := ch;
end;
end;
SetLength(Result, Count);
end;
begin
Writeln(GetNumbers('123.456.789-00'));
Readln;
end.