[英]Regular Expression allowing only 0-24 float point numbers
我正在創建WPF TextBox擴展控件,該控件必須僅通過使用正則表達式才能允許以下輸入:
對於我來說,很難找出哪個正則表達式可以通過該范圍。 我開始於:
^[0-9]*(?:\.[0-9]*)?$
但這並不完全符合我的要求。 因此,我正在尋求幫助以獲取此正則表達式。
試試這個模式:
^24(?:\\.00?)?|(?:2[0-3]|1?[0-9])(?:\\.[0-9]{1,2})?$
為什么要使用正則表達式感到頭疼? 只需解析文本,檢查值的范圍和小數位數:
bool IsValid(string text) {
decimal candidate;
if(decimal.TryParse(text, out candidate)){
if(
candidate >= 0 && // Check lower bound
candidate <= 24 && // CHeck higher bound
Math.Round(candidate, 2) == candidate // Check number of decimals
) {
return true;
}
}
return false;
}
此外,你會避免全球化問題(使用.
, ,
取決於文化)通過讓系統處理這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.