我想在JavaScript中制定一個正則表達式來獲得美分形式的一個有小數點的數字。例如,可從454.2700000
獲得27
的表達式。我知道如何用split和substring來做到這一點,但是使用正則表達式還是有一個更簡單的方法。由於在Javascript中使用正則表達式得到美分
回答
看到它,如果你真的有一個號碼,你想一個數字,爲什麼要使用字符串?
var n=454.27;
var cents=Math.round(n*100)%100;
如果n是一個數字字符串,乘法把它轉換成一個數字:
var n= '454.270000';
var cents=Math.round(n*100)%100;
下小數點後兩位數字解析出:
/\.(\d{2})/
\.
意味着一個點\d
意味着一個數字{2}
意味着他們兩個()
捕捉這部分比賽
拿到賽,使用.exec
和[1]
:
/\.(\d{2})/.exec("454.2700000")[1]; // "27"
下面的正則表達式將返回你想要的東西:
/(?:\.)(\d\d)/.exec(454.2700000)[1]
非捕獲組是不必要的。 –
你可以做一個正則表達式測試
/\.(\d+)$/.test(454.2700000)
並在這裏得到你的分,parseInt(RegExp.$1, 10)
。解析整數條帶零。
或者如果您總是需要兩位小數,請將我的\ d +替換爲pimvbd的\ d {2},然後您可以僅使用RegExp。$ 1而不使用parseInt。
它匹配。我在Chrome的JS控制檯中測試了它,除非他先從字符串中提取這個數字。 – nickytonline
糟糕。對不起,我誤解了你的正則表達式。但是我仍然沒有看到'parseInt(2700000,10)'將如何返回27。 –
@Tim Pietzcker:我相信這個數字事先被解析過,當轉換成一個字符串時,零點已經消失了。 – pimvdb
- 1. JavaScript的正則表達式得分
- 2. 拆分使用正則表達式-javascript
- 3. 得到部分與正則表達式
- 4. 在JavaScript中使用正則表達式
- 5. 在javascript中使用正則表達式
- 6. 在javascript中使用正則表達式
- 7. 在Javascript中使用正則表達式
- 8. 正則表達式得到的東西在使用javascript
- 9. Javascript正則表達式 - 正則表達式拆分字符串
- 10. (教學)的JavaScript - 使用正則表達式(正則表達式)
- 11. 使用正則表達式的Javascript正則表達式匹配
- 12. 用正則表達式字邊界正則表達式在JavaScript
- 13. 正則表達式在javascript - 正則表達式中的變量
- 14. 使用正則表達式分割美國的地址PHP
- 15. 正則表達式使用JavaScript中
- 16. 正則表達式分割線在JavaScript
- 17. 使用Javascript - 在正則表達式
- 18. 得到使用JavaScript和正則表達式
- 19. 解析url使用javascript正則表達式得到id
- 20. 使用Javascript - 只得到一個正則表達式匹配
- 21. 正則表達式和JavaScript字符串在最後用美元($)
- 22. Javascript lastIndex正則表達式屬性到PHP正則表達式
- 23. Javascript正則表達式到c#正則表達式
- 24. JavaScript正則表達式到Java正則表達式
- 25. 使用正則表達式使用Javascript
- 26. 千位分隔符在JavaScript中使用正則表達式
- 27. 使用正則表達式在JavaScript中分割字符串
- 28. 正則表達式在JavaScript
- 29. 正則表達式在JavaScript
- 30. 正則表達式在JavaScript
我不是100%肯定,但我認爲,正則表達式是不是串等慢。至少在PHP中,正則表達式比字符串函數慢。 –
''12 .24'.split('。')[1]'似乎非常合適。 –
這並不包括我在我的例子中的以下零 – user815460