我目前在學習正則表達式,但是需要這個很急。我有一組值(10, 19.5, 13.99, 9.09)
。除第二個值外,這些格式都很好。正則表達式在第一個小數點後加0
我的問題是如何改寫,使19.5變得19.50
,而不影響其他條目即(10, 19.50, 13.99, 9.09)
非常感謝你們。
我目前在學習正則表達式,但是需要這個很急。我有一組值(10, 19.5, 13.99, 9.09)
。除第二個值外,這些格式都很好。正則表達式在第一個小數點後加0
我的問題是如何改寫,使19.5變得19.50
,而不影響其他條目即(10, 19.50, 13.99, 9.09)
非常感謝你們。
如果這些號碼,使用toFixed()
如果這些字符串,你可以使用
num="19.5"
num.replace(/^(\d+\.\d)$/,"$10");
或者將字符串轉換爲數字。 – 2012-01-11 11:12:03
工程就像一個魅力。謝謝大家! – echez 2012-01-11 11:32:05
EDITED答:
<script type="text/javascript">
var num = 19.9;
if(String(num).indexOf('.')>-1)
{
num = num.toFixed(2);
}
alert(num);
</script>
直答案是使用「.toFixed(2)」,但我們覈實,如果它是一個小數,使我們不必像‘10.00’
結果爲進一步格式化選項,你擁有jQuery插件的NumberFormatter:
http://archive.plugins.jquery.com/project/numberformatter
下面是該項目的網頁:
http://code.google.com/p/jquery-numberformatter/
直接鏈接該庫:
http://jquery-numberformatter.googlecode.com/files/jquery.numberformatter-1.2.2.jsmin.js
這會改變'10'到'10.00',但我想很容易檢查一個整數。 – Kobi 2012-01-11 11:08:03
如果你想使用正則表達式,你可以這樣做:
"10, 19.5, 13.99, 9.09".replace(/^\d+\.\d{1}$/g, function (full) {
return full + "0";
});
這將返回"10, 19.50, 13.99, 9.09"
。
搜索:
(\.\d)(\D|$)
這點後面跟着一個數字,然後這不是一個數字(或字符串的結尾)。
替換:
$10$2
這是第一個捕獲組,然後 '0',那麼第二個捕獲組。
var s = '10, 19.5, 13.99, 9.9';
s = s.replace(/(\.\d)(\D|$)/g, '$10$2');
// s == '10, 19.50, 13.99, 9.90'
例如,迭代每個值:
var value = '19.5';
value = value.replace(/^\d+[\.,]\d{1}$/, '$&0');
試試這個
var array = [10, 19.5, 13.99, 9.09];
for(var i=0; i< array.length;i++){
if(/[0-9].[0-9]{1}$/.test(array[i])) array[i] = array[i]+'0';
}
alert(array);
OUTPUT :
10, 19.50, 13.99, 9.09
,只要它是一個數字變量,零點向右(小數點後)將被刪除,除非你想要它們作爲字符串。 – medopal 2012-01-11 10:58:02