javascript正則表達式小數類型


假設你要閱讀並了解什么,能閱讀。假設只需要結果,直接跳轉到這篇文章的結尾。

有使用前需求javascript正則表達式匹配小數類型,后來,他們已經寫是不完全正確的識別。

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

常見錯誤:

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所有匹配,(好像沒必要的)

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





版權聲明:本文博客原創文章,博客,未經同意,不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM