4

MVCを使用していて、電話を検証したいいいえ

私はこのクラスを書きました:

public class StduentValidator : AbstractValidator<graduandModel>
{
    public StduentValidator(ILocalizationService localizationService)
    {
        RuleFor(x => x.phone).NotEmpty().WithMessage(localizationService.GetResource("Hire.HireItem.Fields.phone.Required"));
    }
}

このクラス内の電話番号を検証するにはどうすればよいですか?

以下を使用できますか?

RuleFor(x => x.phone).SetValidator(....)

もしそうなら、どうすればそれを使用できますか?

4

3 に答える 3

5

モデルでDataAnnotationsを使用することを検討しましたか?

このようなもの:

[DataType(DataType.PhoneNumber, ErrorMessage = "Invalid Phone Number")]
public string PhoneNumber { get; set; }

別の解決策は、正規表現を使用することです。

[DisplayName("Phone number")]
[Required(ErrorMessage = "Phone number is required")]
[RegularExpression(@"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}", ErrorMessage = "Invalid phone number")]
于 2012-10-16T06:14:50.810 に答える
2

正規表現が必要です。

この例を試してください

正規表現ライブラリ

次に、次のようなデータ注釈で正規表現パターンを使用できます。

[RegularExpression(@"^[2-9]\d{2}-\d{3}-\d{4}$", ErrorMessage = "Please enter a valid phone number.")]
public string PhoneNumber { get; set; }
于 2012-10-16T06:16:31.843 に答える
1

以下のコードサンプルは、電話番号の検証に流暢な検証を使用しています

  class StudentCommandValidation :  AbstractValidator<StudentCommand>
{
    public StudentCommandValidation()
    {
        RuleFor(p => p.PhoneNumber)
       .NotEmpty()
       .NotNull().WithMessage("Phone Number is required.")
       .MinimumLength(10).WithMessage("PhoneNumber must not be less than 10 characters.")
       .MaximumLength(20).WithMessage("PhoneNumber must not exceed 50 characters.")
       .Matches(new Regex(@"((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}")).WithMessage("PhoneNumber not valid");
    }
}
于 2022-01-11T12:57:04.350 に答える