gpt4 book ai didi

delphi - 只允许字符串中的某些字符

转载 作者:行者123 更新时间:2023-12-03 18:01:55 25 4
gpt4 key购买 nike

我正在尝试验证一个字符串,它可以包含所有字母和数字字符,以及下划线 (_) 符号。

这是我到目前为止尝试过的:

var
S: string;
const
Allowed = ['A'..'Z', 'a'..'z', '0'..'9', '_'];
begin
S := 'This_is_my_string_0123456789';

if Length(S) > 0 then
begin
if (Pos(Allowed, S) > 0 then
ShowMessage('Ok')
else
ShowMessage('string contains invalid symbols');
end;
end;

在 Lazarus 中这个错误是:

Error: Incompatible type for arg no. 1: Got "Set Of Char", expected "Variant"

显然我对 Pos 的使用完全错误,我不确定我的方法是否是正确的方法?

谢谢。

最佳答案

您必须检查字符串的每个字符,如果它包含在 Allowed

例如:

var
S: string;
const
Allowed = ['A' .. 'Z', 'a' .. 'z', '0' .. '9', '_'];

Function Valid: Boolean;
var
i: Integer;
begin
Result := Length(s) > 0;
i := 1;
while Result and (i <= Length(S)) do
begin
Result := Result AND (S[i] in Allowed);
inc(i);
end;
if Length(s) = 0 then Result := true;
end;

begin
S := 'This_is_my_string_0123456789';
if Valid then
ShowMessage('Ok')
else
ShowMessage('string contains invalid symbols');
end;

关于delphi - 只允许字符串中的某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18683026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com