2014-10-17 30 views
0
[Required(ErrorMessage = "Field is needed")] 
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Can only be 9 characters long")] 
[Display(Name = "Number")] 
public string Number { get; set; } 

這就是我所擁有的。我確保該號碼只能有9個字符,但我也希望它不接受不以1或2開頭的號碼。如何驗證MVC中限制以上的數字

因此,如果有人試圖創建333333333帳戶,不要讓他。我怎麼能做這樣的事情?

這裏是查看

 <div class="editor-label"> 
      @Html.LabelFor(u => u.Number) 
     </div> 
     <div class="editor-field"> 
      @Html.TextBoxFor(u => u.Number) 
      @Html.ValidationMessageFor(u => u.Number) 
     </div> 
+0

更改正則表達式以排除以2開始的數字以上的字符串。http://www.regexpal.com可以提供幫助。目前的正則表達式看起來像阻止你在字符串中使用任何數字 - 是你想要的嗎? – Charleh 2014-10-17 15:21:01

+0

無法打開鏈接。 讓我來糾正任何長度爲9個字符的東西 – DVerde 2014-10-17 15:22:47

+0

這不是它所做的 - 正則表達式^ [0-9] + $表示匹配字符串開始和結束之間任意數量從0到9的任何字符。你可以放1000個字符(只要它們是數字)。 – Charleh 2014-10-17 15:24:47

回答

0

這是你需要只允許9號的正則表達式和第一必須是1或2

^[1-2][0-9]{0,8}$ 

所以,你的財產將是

[Required(ErrorMessage = "Field is needed")] 
[RegularExpression(@"^[1-2][0-9]{0,8}$", ErrorMessage = "Can only be 9 characters long")] 
[Display(Name = "Number")] 
public string Number { get; set; } 

注:你的正則表達式可以讓你有9個以上的數字。

我用Debuggex檢查我的正則表達式了,看你在這裏解釋 https://www.debuggex.com/r/O0hseHDUms5Fhh0u

+0

在第一個字符匹配後不需要'{1}' -^^ [1-2] [0-9] {0,8} $'應該可以正常工作(抱歉迂腐!) – Charleh 2014-10-17 15:29:26

+1

'不是'! ;-)確實如此,編輯 – 2014-10-17 15:30:33

+0

不知道關於debuggex.com - 不錯,甚至顯示匹配步驟:) – Charleh 2014-10-17 15:31:35

0

你可以把範圍屬性 [範圍(1,Int32.MaxValue)

你可以把自定義的範圍..例如,範圍爲29999999 ..你可以把 [範圍(1,2999999)] .. 這將滿足您的要求,數字只能從1和2開始..

1

您的正則表達式應該是這樣的:

^[12]{1}\d{8}$ 
  • [12] {1} =列表中的任何字符
  • \ d {8} =後跟8個 數字

要顯示多於一個的錯誤你能結合它與其他驗證規則,如Range或StringLength,雖然我不確定優先順序。

[Required(ErrorMessage = "Field is needed")] 
[Range(100000000,299999999, ErrorMessage="Must be 9 characters and start with 1 or 2")] 
[RegularExpression(@"^[1-2][0-9]{0,8}$", ErrorMessage = "Can only be 9 characters long and start with 1 or 2")] 
[Display(Name = "Number")] 
public string Number { get; set; } 
+0

如果我想爲第一個數字不同於1或2的情況提供不同的錯誤消息,該怎麼辦? – DVerde 2014-10-17 15:46:46

+0

這可能有助於http://stackoverflow.com/questions/25597305/multiple-separate-regular-expressions – 2014-10-17 16:01:24