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驗證中正則表達式的不同之處嗎?
有趣。這個正則表達式在網頁上工作,但在服務器代碼中失敗。基本上與我原來的問題相反。就好像我需要將輸入匹配到兩個不同的正則表達式,一個在瀏覽器中,另一個在服務器上驗證。奇怪。 –
嗯,奇怪。 'RegularExpression(@「。{8,}」)''怎麼辦? –
我剛剛在C#上測試,答案中的正則表達式正常工作。你不是在別的地方犯錯嗎? –