我需要驗證一個(四位)郵政編碼字段,可以接受的:正則表達式:需要驗證輸入爲單個,多個或一個範圍的郵政編碼
- 單個郵政編碼(例如4009) - >它具有通過逗號是四位 由逗號(多個)(例如4002,5001)
- 使用連字符甲郵政編碼的範圍(例如4000-4010)
- 任何#1組合和#3分離
- 多郵政編碼分離(例如4000,4002,4005-4010,5001)
的#4另一個例子是:4000-4007,5000
如何在C#中使用正則表達式我做驗證。我的問題更多的是關於如何構建模式本身。謝謝。
更新
這是我想出了(使用正則表達式上輸入你的):
public override bool IsValid(object value)
{
if (value == null)
{
return true;
}
var stringValue = value.ToString().Replace(" ", "");
foreach (var pc in stringValue.Split(','))
{
if(!Regex.Match(pc, @"^(\d{4})$|^(\d{4}-\d{4})$").Success)
{
return false;
}
}
return true;
}
我是那種希望做驗證,而不必做string.Split( )。我不確定這是否可能。如果有人有更好的想法,請在這裏發佈。謝謝。
如果這種採取4009-4000? – NullUserException
如果正則表達式也可以檢測到這將是很好。理想情況下,它不應該花費4009-4000,即在該範圍內,第一個數字應該低於或等於第二個數字。 – user895852