2014-06-17 31 views
0

我試圖將貨幣字符串轉換爲數字。我正在使用一個替換函數,我在之前的類似上下文中成功地使用了一個正則表達式。JavaScript「替換」不工作通過jQuery返回的字符串

貨幣字符串在這裏拍攝的,在「每一個」循環的一部分:

var unitGridPrice = jQuery(this).find(".clsPriceGridDtlPrice").html(); 

結果是unitGridPrice是貨幣字符串,類似「2.75 $」。我試圖將其轉換爲數字:

var priceToConvert = unitGridPrice; 
var unitGridPriceNo = Number(priceToConvert.replace(/[^0-9\.]+/g, '')); 

但是,在最後一行就緒後,腳本將無法運行。

如果我使用priceToConvert的值,它會正確顯示貨幣文本字符串,所以我相信提供替換函數的字符串是正確的。

如果我將「var priceToConvert = unitGridPrice」更改爲「var priceToConvert =」$ 2.75「,那麼腳本會正確返回2.75我可以複製並超出unitGridPrice顯示的值到我正在測試的文本字符串中,但隨着變量那裏的腳本死亡

我試過刪除正則表達式,更改替換爲.replace('$',''),並再次腳本停止與變量的地方,但工程如果我測試與

固定字符串。我真的很爲難。幫助?? !!謝謝!!!

+0

你是什麼意思腳本死亡?你有任何錯誤? – univerio

+0

'console.log(unitGridPrice)'顯示了什麼? –

+0

腳本沒有完成,我得到的錯誤「priceToConvert爲空」 我試着用「String」函數強制輸出jQuery調用(抓住吸管)並將錯誤信息改爲「String is not defined」 。在相同的代碼中,如果我刪除替換函數並將unitGridPrice賦值給變量「priceToConvert」,那麼我會得到完全正在嘗試轉換的字符串。莫名其妙。我需要睡在這。 – dexter

回答

0

我遇到了一些問題,而試圖讓NUM也不久前。問題是正則表達式,所以我改變了像下面的代碼正則表達式。

var id = element.name.replace (/[^\d.]/g, ''); 

上面的element.name類似於input_21,input_22等,我想只得到數字(21,22)。希望它能幫助你。 :)