我使用innerHTML方法將一個字符串檢索到了一個變量。字符串是:轉換將字符串複雜化爲整數?
£ 125.00
<!-- End: pagecomponent/pricesplit -->
我只想要125.00部分。是否有可能使用parseInt()方法將其轉換爲整數?另外我能做些什麼來提取125.00部分?
謝謝
我使用innerHTML方法將一個字符串檢索到了一個變量。字符串是:轉換將字符串複雜化爲整數?
£ 125.00
<!-- End: pagecomponent/pricesplit -->
我只想要125.00部分。是否有可能使用parseInt()方法將其轉換爲整數?另外我能做些什麼來提取125.00部分?
謝謝
你可能需要使用正則表達式來刪除任何東西,但數字和時間,然後在剩下的字符串運行parseInt
:
parseInt(yourString.replace(/[^\d.]/g, ''), 10);
測試正則表達式here。這是一個故障:
/.../
只是用於包裝正則表達式的語法。忽略這些。
[...]
創建一個字符類。
^
當放置在字符類的開始時,它會否定所有內容。
\d
任何數字
.
字面週期。它不需要在角色類中轉義 - 在它之外意味着「任何角色」並且需要被轉義。
所以/[^\d.]/
的意思是「匹配任何不是數字或句點」,然後用空字符串替換它。
如果您的號碼可能包含小數點後的有效數字,如125.50
,則應使用parseFloat
而不是parseInt
。
您可以使用正則表達式獲取該值。這裏有一個例子:
var str = '£ 125.00<!-- End: pagecomponent/pricesplit -->';
parseInt((/\d+/).exec(str)[0], 10);
或者,如果你也想獲得零:
(/\d+\.\d+|\d+/g).exec(str)[0]
它直接使用parseInt
因爲當一個字符串不以數字parseInt
不啓動你不能得到工作。
我相信只有允許數字纔會去掉''',給你'12500'而不是'125'。 – jbabey
'£ 125.00'.match(/ \ d +/ig); – salexch
不,你想使用'parseFloat' – Bergi
我已經添加了描述你爲什麼不能使用'parseInt'以及如何只提取數字值。 –