2012-08-06 33 views
1

我正在使用ASP.NET Regular Expression Validator驗證textbox正則表達式接受十進制數字,但不是單一的0

有效樣本:

1 

1.1 

11.1 

11.12 

0.1 


0.12 

無效樣本:

0 

1.123 

正如你所看到的,我不想輸入只包含0

目前我有這個表達式,允許0

^[0-9]{1,2}([/.][0-9]{1,2})?$ 

我該怎麼做才能防止單個0?

任何幫助,非常感謝。

+0

寫一個接受'0','.0','0.0'和'0.00'之外的任何東西的正則表達式很複雜。除了使用正則表達式,沒有別的辦法嗎? (我寫了一個答案,但刪除它,因爲它失敗了,例如'0.01') – 2012-08-06 10:14:28

+0

@AndersAbel加文提供了一種模式,我無法完全理解它,但爲我工作。謝謝努力。 – freebird 2012-08-06 10:22:35

回答

2

這是如何工作的嗎?

((?=.*[1-9])\d+(\.\d+)?) 

釋:

(?=.*[1-9]) - 匹配,但不包括任何比1

\d+更大 - 匹配任何數字

(\.\d+)? - 匹配一個小數點加上剩餘部分。

忽略第二個分組,這只是打破了正則表達式。

+0

我會試試這個,謝謝,但你能解釋一下嗎?會有幫助的。謝謝。 – freebird 2012-08-06 10:17:27

+0

+1這對我來說很好,謝謝。一些解釋將是完美的。謝謝。 – freebird 2012-08-06 10:21:27

+0

什麼?=。*是什麼意思? – freebird 2012-08-06 10:35:30

相關問題