想寫乙個正規表示式,驗證帶千分號的,帶任意位小數的數字型別
網上找來找去找到幾個都不行,然後根據下面兩個自己組裝了一下,終於成功:
^[-+]?(\d+(\.\d*)?|\.\d+)[dd]?$ 可以帶正負號的,任意位小數的實數
(\d*(,\d)*(.(\d,)*\d+)?) 不帶正負號,可以帶任意位小數的實數,但是有bug,如果給小數寫上千分位,也能通過驗證
第一次優化
^[-+]?(\d*(,\d)*(.(\d,)*\d+)?|\.\d+)[dd]?$ bug依舊
第二次優化
^[-+]?(\d*(,\d)*(.\d+))[dd]?$ bug消除了
最後試了試貌似這樣也可以
^[-+]?(\d*(,\d)*.(\d+)?)
最終解決方案,暫時還沒有發現bug
^[-+]?(\d*(,\d)*.(\d+)?)
2017.1.4
謝謝網友指出的bug,下面是新方案:
^[-+]?\d(,\d)*(\.(\d*))?$
Java將數字轉成帶千分號形式
轉至 將乙個數字轉換為有千分位的格式 numberformat numberformat1 numberformat.getnumberinstance system.out println numberformat1.format 11122.33 結果是11,122.33 numberforma...
帶閏年判斷的正規表示式
xixigongzhu 夕夕公主 首先,你的年的範圍是1800 3999 潤年 1800,1900,2100,2200,2300,2500,2600,2700,2900,3000,3100,3300,3400,3500,3700,3800,3900是個特殊值 能被4整除但不是潤年 要分出來 stri...
帶閏年判斷的正規表示式
xixigongzhu 夕夕公主 首先,你的年的範圍是1800 3999 潤年 1800,1900,2100,2200,2300,2500,2600,2700,2900,3000,3100,3300,3400,3500,3700,3800,3900是個特殊值 能被4整除但不是潤年 要分出來 stri...