javascriptRegex小數類型

來源:互聯網
上載者:User

javascriptRegex小數類型

如果想要閱讀和理解一下的,可以讀一下。如果只需要結果,直接跳到本文最後。

曾經有需求用javascriptRegex匹配小數類型,後來自己之前寫的也是不能完全正確識別。

後來在網上找了許多,甚至包括一些老外的純英文論壇什麼的,發現都是錯的,都不夠全面。

常見錯誤:

1. /^-?\d+\.\d+$/ http://blog.csdn.net/xxd851116/article/details/4352011

隨便一看就知道,如果前面帶+則錯誤,如果沒有小數點則錯誤,如果00.123也不錯報等等

2./^[0-9]*[.][0-9]+$/ http://social.msdn.microsoft.com/Forums/en-US/1ffd9265-eafa-4897-b803-39194f35df5d/regular-expression-for-a-float-in-javascript?forum=jscript

與上一個差不多

3. /^\d*+(\.\d+)?$/與上一個同一個頁面

看起來有水平了許多,比如考慮到小數點及小數點後的內容可有可沒有(即整數也可以,不僅僅是純小數)

但是小數點前,00.123 也是可以的

不行。

4. /^[+-]?\d+(\.\d+)?$/

也是更好了,比如考慮到了前面的加號或減號,等,但是同樣的小數點前,00.123 也是可以的


不找更多了,大概也就是這樣。

-----------

下面是我測試多次的一個寫法:

var regExp = /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g;var b = regExp.test(a);alert(b);


解釋:

^$分別匹配字串的首尾

[+-]? 表示字串開頭可以有 +或-或沒有符號,且有的話只能有一個

0|[1-9]\d* 這是小數點前的整數部分,表示可以為 (一個0 ) 或者 (為一個第一位不為0的整數,但第一位以後可以為0)

(\.\d+)? 是指小數點及小數點後面部分,不出現或出現一次

g全部匹配,(好像不是必需的)

因此,完美匹配小數類型。





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.