Я хочу, чтобы два результата были одинаковыми. Может кто-нибудь, пожалуйста, дайте мне решение.
Результат отличается между отправкой сообщений вручную и копированием и вставкой в Команды.
После создания простого бота, чтобы определить, является ли он адресом электронной почты,
введите сообщение: testtest@test.com
↓
Результат:
Ручной ввод: возвращаемое сообщение = "Это MailAddress "
Копировать вставить: return message =" Это не MailAddress "
Мне было интересно, был ли тип ввода другим, но он был тем же.
Я подумал, что регулярное выражение было неправильным , но я не думаю, что это было результатом ввода того же адреса электронной почты.
Исходный код выглядит следующим образом:
private async Task <DialogTurnResult> OneStepAsync (WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
var check = IsMailAddress(stepContext.Context.Activity.Text);
if (!check) {
stepContext.Context.SendActivityAsync (MessageFactory.Text ("It isn't MailAddress"), cancellationToken);
} else {
stepContext.Context.SendActivityAsync (MessageFactory.Text ("It is MailAddress"), cancellationToken);
}
return await stepContext.EndDialogAsync (cancellationToken: cancellationToken);
}
public static bool IsMailAddress (string address)
{
if (string.IsNullOrEmpty (address))
{
return false;
}
return Regex.IsMatch (
address, @ "^ [A-Z0-9 ._% +-] + @ [A-Z0-9 .-] + \. [A-Z] {2,4} $",
RegexOptions.IgnoreCase
);
}