開發過程中遇到涉及金額的數字,金額要求是大於0的數,可以包括小數
。所以也就能包含0.5,0.50,0.01,1.01等等
這樣的數字。
要寫乙個正則判斷使用者輸入的金額是否合法,在網上找了很多正則,都沒辦法滿足,網上大多數正則沒辦法過濾掉像:0、00、001、0.0、01.1、01.0等,有的還會遮蔽0.50這些類似數字,大家可以先自測一下。
所以最後撿起來幾乎快忘掉的正則,自己寫了乙個:
/^([1-9]\d*(\.\d*[1-9][0-9])?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/
或者:/^([1-9]\d*(\.\d*)?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/
自測是能夠正常的輸入大於0(包括像0.10,0.01,且遮蔽像00,0.0,001,01.0,01.1等)的數。
最後補上解析:
/^([1-9]\d*(\.\d*[1-9][0-9])?)|(0\.\d*[1-9][0-9])|(0\.\d*[1-9])$/
解析: /^
//匹配開頭[1
-9]//表示第乙個數為1~9中的任意乙個(不能為0開頭,0開頭的在後半部分):匹配1~9
\d*//表示0-9的任意乙個數字,可以為多位數 :匹配除開頭數字外的整數部分
(\.\d*)?
//表示跟小數點,以及任意數字:匹配小數點,以及小數點後面可以為任意數
|//表示選擇,即「或」,第二種可能
0\.\d*[1
-9][
0-9]
//表示以0開頭,後面接小數點,小數點後面第一位數在1~9之間,第二位數可以在0~9之間
|//表示選擇,即「或」,第三種可能
0\.\d*[1
-9]表示以0開頭,後面接小數點,小數點後面只有一位不為0的數
$ //匹配結尾
/
一邊測試一邊解析,發現單靠上面好像不能過濾掉漢字或者標點符號那些,我是專案裡面還有封裝的校驗,如果是input框,type設定為number應該就可以了,還是需要多測試。 正規表示式 大於等於0
system.out.println 大於0的正整數 0.001 matches 1 9 d 0 9 1 9 0 0 9 1 9 0 正規表示式 最簡單易懂的正規表示式 只需要三步 第一步 第二步 第三步 d w 不明白什麼意思的看最下邊的註解 學會三步以後 那麼你就掌握了 正規表示式的 號碼的正規...
js數字正規表示式,js小數正規表示式
js數字正規表示式,js小數正規表示式 是否為數字 僅正數 包括正整數 正小數 0 param value returns function isnumber value 是否為所有數字 正數 負數 包括整數 小數 0 param value returns function isnumberall...
js正則大於0小於100 正規表示式詳解(基礎篇)
前言 對正規表示式一直都很嚮往覺得他很神奇,尤其是在處理前端頁面表單的時候,實在不想寫if else判斷,所以抽了點時間簡單學習了一下,總結下學習成果。我在處理表單驗證和頁面資料渲染的時候會用到正規表示式,對正規表示式也不是很熟悉。1 test 匹配字串如果匹配到,包含返回true,不包含返回fal...