文字列に「@」が含まれているかどうかを確認する方法[重複]
Aug 22 2020
Ifステートメントを使用しようとしましたが、編集に@を入力した場合にのみメッセージが表示されます
var
sname , email : string ;
iAge , igrade : integer ;
iVal : string;
begin
ival := '@';
email := (edtEmail.Text);
if ival = email then
begin
Showmessage(' Email Address must contain @ ');
end;
回答
3 AndreasRejbrand Aug 21 2020 at 23:26
確かに、条件ival = email
はtrue
iffで ival
ありemail
、同一の文字列です。ival
は@
であるため、email
が正確である場合、条件は真@
です。
@
内にが見つかったかどうかを確認しemail
ます。これを行うには、Pos関数を使用できます。この関数は、文字列内で最初に出現する部分文字列の最初の文字の1から始まるインデックスを返すか、文字列内0
に部分文字列が見つかりません。
if Pos('@', email) = 0 then
ShowMessage('The email address must contain @.');
at文字を保持する変数は実際には必要ないことに注意してください。
Delphiの最新バージョンでは、次のように書くことをお勧めします。
if not email.Contains('@') then
ShowMessage('The email address must contain @.');
TStringHelper.Containsこれは読みやすいので、を使用します。
2 Charlie Aug 21 2020 at 23:31
Pos関数を使用して、@文字が電子メール文字列に含まれるかどうかを確認できます。
if Pos('@', email) = 0 then
begin
Showmessage(' Email Address must contain @ ');
end;
これはDelphiでのメールアドレスの検証に関する記事です
https://www.howtodothings.com/computers/a1169-validating-email-addresses-in-delphi.html