[英]Regular Expression validator for number starting in negative range and ends i positive
我試圖解決我的形式問題。
我有一個文本框,我必須驗證一個數據,它必須是一個數字,范圍從-90到90,沒有逗號,只允許點例如:2.34允許3,54禁止134禁止-78允許
我已經創建了這個表達式: ^ [ - +]?[0-9] *。?[0-9] + $它支持我的數據格式化但不驗證數據范圍,任何人都可以建議我嵌入這個表達式的解決方案。
<asp:RegularExpressionValidator runat="server" id="wspXformat"
controltovalidate="textBox1" validationexpression="^[-+]?[0-9]*\.?[0-9]+$" errormessage="Data Error" /><br />
我知道我可以用代碼制作它,但也許有一種更簡單的方法。
你應該使用RangeValidator
:
<asp:RangeValidator runat="server" id="wspXformat" ControlToValidate="TextBox1"
MinimumValue="-90" MaximumValue="90" Type="Double"
Text="The value must be from -90 to 90!" />
與提出復雜的正則表達式相比,解析數字並檢查其值更容易。 如果RangeValidator
不適合您,您還可以考慮CustomValidator
。
檢查介於-90和+90之間的數字
有效數字在小數點前有一位或兩位有效數字。 它們之前可能有一個符號和一些無關緊要的零。
忽略前導符號和任何前導零似乎有三種情況,所以也許帶有交替的正則表達式(即|
)會很有用。 案件是
value = 90
10 <= value < 90
0 <= value < 10
其中兩種情況是“小於”,這意味着小數點,並允許一些小數位。
還有另一種情況可以處理諸如.5
數字,它在小數點之前沒有數字。
考慮到這些因素導致表達:
^[-+]?0*(90(.0*)?|[1-8]\d(\.\d*)?|[0-9](\.\d*)?|\.\d*)$
(使用Notepad ++ 6.5.5測試。)
前導^
和尾隨$
使它檢查整個字符串。 [-+]?0*
用於可選符號和可選前導零。 ( | | | )
分隔可選符號和可選前導零之后的四種情況。 90(.0*)?
正好看90后,可選零分數部分。 [1-8]\\d(\\.\\d*)?
處理10到89之間的任何內容,以及可選的小數部分。 [0-9](\\.\\d*)?
處理0到9之間的任何內容,以及可選的小數部分。 \\.\\d*
處理沒有任何整數位的分數。
檢查-180和+180之間的數字
可以使用與上述相同的樣式。 首先找到可能的字符串集合,然后組合成正則表達式。
和以前一樣,允許使用可選符號和前導零。 數字本身可以
value = 180
100 <= value < 180
10 <= value < 100
0 <= value < 10
.0 <= value < 1 (and no integral part)
這里有五種變化。 結合所有部分給出:
^[-+]?0*(180(.0*)?|(1[0-7]\d(\.\d*)?)|\d\d(\.\d*)?|\d(\.\d*)?|\.\d*)$
上述兩種替代方案可以很容易地組合在一起。 |\\d\\d(\\.\\d*)?|\\d(\\.\\d*)?|
部分可以更改為|\\d\\d?(\\.\\d*)?|
。 將整體表達縮短為:
^[-+]?0*(180(.0*)?|(1[0-7]\d(\.\d*)?)|\d\d?(\.\d*)?|\.\d*)$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.