2014-01-05 18 views
0

我很難得到正則表達式來使用jQuery驗證。假設我舉一個簡單的正則表達式,需要至少8個字符匹配:正則表達式不工作在jQuery驗證

(?=.{8,}) 

如果插頭此爲JavaScript-based regular expression tester,它工作得很好。 8個或更多字符匹配,7個或更少不匹配。

此外,如果我測試此在C#它的工作原理,以及:

 var regex = new Regex(@"(?=.{8,})"); 
     if (regex.IsMatch(myInput)) 
     { 
      // Hits this code when myInput >= 8 characters 
     } 

接着,我使用ValidationAttribute在視圖模型以發射jQuery驗證,以確保用戶的輸入的表達式匹配:

[RegularExpression(@"(?=.{8,})", ErrorMessage="Does not match.")] 
    public string MyInput { get; set; } 

在這一點上,它打破了。無論我在字段中輸入的內容都不匹配。發出的HTML如下:

<input data-val="true" data-val-regex="Does not match." 
      data-val-regex-pattern="(?=.{8,})" id="MyInput" name="MyInput" 
      type="text" value="" /> 

我試過不同的正則表達式,無濟於事。我忽略了jQuery驗證中正則表達式的不同之處嗎?

回答

1

也許這個作品:

RegularExpression(@"^.{8,}$") 

希望這有助於。歡呼聲

+0

有趣。這個正則表達式在網頁上工作,但在服務器代碼中失敗。基本上與我原來的問題相反。就好像我需要將輸入匹配到兩個不同的正則表達式,一個在瀏覽器中,另一個在服務器上驗證。奇怪。 –

+0

嗯,奇怪。 'RegularExpression(@「。{8,}」)''怎麼辦? –

+0

我剛剛在C#上測試,答案中的正則表達式正常工作。你不是在別的地方犯錯嗎? –