2011-09-19 31 views
0

在Web應用程序中,在使用正則表達式驗證文本框的同時,我編寫了表達式以僅驗證不以零開頭的數字,小數點後有3位數字。但是如果我只輸入一位數字,它會給我一個信息。你能用正則表達式來幫助我嗎?我在尋找它不會接受零領先的數字,只接受3位小數像12.336,1.254,10.20,使用正則表達式進行數字驗證

+0

你想要3個小數還是0到3?在這個例子中,你說'10.20'是2個十進制數。 – Toto

回答

1

取決於你想要什麼:

這將匹配號碼不以0起點,也正好具有3位

^[1-9]\d*\.\d{3}$ 

這將匹配號碼不以0起點,也有1到3位或沒有。

^[1-9]\d*(?:\.\d{1,3})?$ 
1

這應該做的伎倆表達等:

[1-9]\d*\.?\d{0,3} 

如果你想要忽略空格,只需加\ s *:

\s*[1-9]\d*\.?\d{0,3}\s* 

順便說一句,有很多用於編寫正則表達式的可視化工具 - 我推薦Expresso。

0

這是你想要什麼:

^[1-9]\d*.?\d{0,3}$ 

注意這一點,如果有在串的兩端的空間也將失敗,取出^在開始和$在最後如果這不是因爲期望。

+1

這也驗證'X.' –

+0

@Tim - 所以它!我修改了我的答案 –