2015-10-11 23 views
1

我有一個像「-12.5百萬」的數字,我想在JavaScript中使用正則表達式將其轉換爲「-12.5」。 我這樣做是刪除一切,但數字,' - '符號和期間

var str="-12.5 Million"; 
var result=str.replace("[^0-9\.-]", ""); 
alert(result); 

但我得到的字符串不變。誰能幫助嗎?

這是我創建的fiddle。 Thanx提前:)

回答

4

您需要提供RegExp例如文字(不只是一些字符串),以取代方法和使用全局修飾符g

var str = "-12.5 Million"; 
 
var result = str.replace(/[^0-9.-]/g, ""); 
 
alert(result);

,但你不在這種情況下確實需要regexp,您可以簡單地使用parseFloat方法,因爲它會在找到第一個非數字字符後停止解析字符串:

parseFloat解析它的參數,一個字符串,並返回一個浮點數。如果遇到除符號(+或 - ),數字(0-9),小數點或指數之外的字符,則會返回該值並忽略該字符和所有後續字符。

所以,你可以這樣做:

alert(parseFloat("-12.5 Million"));


+0

非常感謝......工作就像一個魅力! – ValarMorghulis

+0

只是你應該知道,當你使用'parseFloat'時,你會得到一個數字而不是一個字符串,如果它對你有什麼不同。 –

相關問題