2015-11-19 82 views
1
somevar = ' 150,00 $'; 
someothervar = '$25.0; 

我想刪除美元符號,空格,逗號或點。用空格替換這些字符中的任何一個:''

嘗試somevar.replace(/('$'|' '|,|\.)/g,'');返回15000 $(領先空間)。

所以它看起來像逗號被刪除,但不是一切?

我可以是這樣的:

somevar.replace(/\$/g,'').replace(/ /g,'').replace(/,/g,'') 

但是肯定有更多的「優雅」的方式?

+0

預期產量是多少? '150,00 $' - >'150'或'15000'? –

+0

你完全確定點和逗號嗎? – RobertoNovelo

+0

'/ \ D/g'是最好的方法,但要小心,有一天,如果你偶爾從你的迴應中刪除小數點...;) –

回答

2

你可以使用/[$,.\s]/g

' 150,00 $'.replace(/[$,.\s]/g, ''); 
// "15000" 

'$25.0'.replace(/[$,.\s]/g, ''); 
// "250" 

,因爲你需要躲避$字符,並刪除單引號你的正則表達式是行不通的。您可以使用:/\$| |,|\./g

或者,你也可以只使用/\D/g替換所有非數字字符:

' 150,00 $'.replace(/\D/g, ''); 
// "15000" 

'$25.0'.replace(/\D/g, ''); 
// "250" 
+0

'/ \ D/g'建議是由Roberto在發佈之前發佈的。 –

+0

@stribizhev我比他早3分鐘回答。直到我看到您的評論時,我甚至都沒有看到他的答案。你是否建議我應該刪除那個或什麼? –

+1

「..因爲你需要逃避$字符」 - 可能會添加一個澄清你爲什麼*不需要? – usr2564301

2

我想:

var somePriceString = "$$2.903.5,,,3787.3"; 
 

 
console.log(somePriceString.replace(/\D/g,''));

如果我想刪除任何非數字字符。

相關問題