1
クラスから静的な文字列を読み取るときに問題が発生しました。これは検証のためにパターンを保持しています。 デバッグすると、中括弧が角括弧に囲まれていることがわかります。 これは私のクラスである:C#FluentValidation定数が正しく動作しない
public static class ArticleConstant
{
public const int LengthOfArticleNumber = 9;
public static readonly string PatternArticleNumber = "^[A-Z0-9]{9}$";
}
私も
public static readonly string PatternArticleNumber = "^[A-Z0-9]\{9\}$";
public static readonly string PatternArticleNumber = "^[A-Z0-9]{{9}}$";
public static readonly string PatternArticleNumber = @"^[A-Z0-9]{9}$";
public static readonly string PatternArticleNumber = $"^[A-Z0-9]{9}$";
をしようとしたが、それのどれも働きました。 これは私の実際の検証ルールです:
this.RuleFor(article => article.Number)
.NotEmpty()
.WithLocalizedMessage(() => ValidationErrorMessages.IsRequired)
.Length(ArticleConstant.LengthOfArticleNumber)
.WithLocalizedMessage(() => ValidationErrorMessages.DefinedSized)
.Matches(ArticleConstant.PatternArticleNumber)
.WithLocalizedMessage(() => ValidationErrorMessages.MustNotContainAnySpecialCharacter);
私は試合に直接パターンを入力してください期待のようにすべての作品に機能します。
ここで何が起こっているのか教えてください。 static readonly
が何かをやっていたように、検証が失敗したように、
おかげで、 デビッド
あなたは '/^[A-Z0-9] {9} $ /' –
を試しましたか?中括弧は正しく解析されていますが、検証はまだ失敗します。 のような非常に簡単なパターンでさえ、 'public static readonly string PatternArticleNumber ="^[A-Z0-9] * "' は検証に失敗します。 –