5

üzerinde İşleyen değil Öznitelik gider: Ben ASP karşı belirtirkenASP.NET MVC [REGULAREXPRESSION], işte bu ilgili Yığın taşması benzer bir konu bulmak için görünmüyor olabilir Bütün dize Match

Neden öyle .NET MVC görünümü modeli sınıfı aşağıdaki tanım:

[Required] 
[RegularExpression(@"\A\d{3,4}\Z", 
    ErrorMessage = "The security code (CVN) must be between 3 - 4 digits long.")] 
[Display(Name = "Card Security Code (CVN)")] 
public string CardCVN { get; set; } 

benim mütevazi istemci tarafı doğrulama testinde normal ifade valide edilemez olduğunu mu? (ve daha sonra bir form alanı hatası görüntüler).

Tüm dize eşleme tekniğini kaldırarak düzenli ifadem [RegularExpression(@"\d{3,4}"... olarak değiştirilir, en iyi eşleşir mi görünüyor? ve \A veya \Z uygulamamış olsa da, yalnızca tüm dize eşleşmesiyle eşleştiğinde (orijinal olarak ihtiyacım olanı yapıyor), jQuery doğrulaması görünüyor; Bir şey mi eksik?

Teşekkürler.

cevap

3

İstemci tarafında, normal ifade JavaScript tarafından yürütülür ve JS, \A, \Z veya \z'u desteklemez. Bunun yerine ^ ve $'u kullanabilirsiniz, ancak buna gerek duymamalısınız. Validatorlarda kullanılan regexler genellikle her iki uçta otomatik olarak sabitlenir. ASP.NET MVC'de durum böyle.

+0

Teşekkürler Alan. İlginç bir kişi, ASP.NET MVC'nin gerçekten dönüştürmesi gerektiğini düşünürdü :) – GONeale

2

bunu kullanın yerine: @"^\d{3,4}$"

^ - dizesinin başlangıç.

$ - dizgenin sonu.

+1

\ on \ d adlı dosyayı kaçırdınız. Ancak yanıt için teşekkürler. Cevabını anlattığı gibi Alan'a puan vereceğim. – GONeale

İlgili konular