2017-08-09 46 views
-1

我想下面的代碼的混合溶劑: -的toString沒有得到應用到數字,字符和特殊符號

var testrename = { 
 
    check: function() { 
 
    var str = 988,000 PTS; 
 
    var test = str.toString().split(/[, ]/); 
 
    console.log(test[0] + test[1]); 
 
    } 
 
} 
 

 
testrename.check();

我想輸出AS-988000

我嘗試它在節點上

+1

凡'temp'定義? – guest271314

+0

更新了排隊。我將988,000 PTS作爲變量內的數據。 有沒有辦法做到這一點? – Yogi

+1

你爲什麼期望'' - 98000「'結果而不是'」988000「'? – guest271314

回答

-1

您的str變量的分配值需要引用以便分配字符串val對它來說,它被認爲是一個字符串。

它看起來像你想要做的是提取一個字符串的整數值,所以從字符串「988,000 PTS」返回988000,你會使用parseInt(string)

更新:逗號將打破parseInt函數並返回截斷數字(988不是988000),因此您可以使用帶正則表達式的replace函數首先從字符串中刪除所有非數字值。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt

var testrename={ 
    check :function() { 
    var str ="988,000 PTS"; 
    cleanStr = str.replace(/\D/g,''); 
    var test = parseInt(cleanStr); 
    console.log(test); 
    } 
} testrename.check(); 
+1

你不應該參考w3schools,他們在過去和現在都有不準確和錯誤的信息。您應該始終指定'radix'參數,因爲用於'radix'的默認值可以針對不同的實現和js版本進行更改。這些信息部分包含在鏈接中,但他們應該清楚地建議始終設置「基數」。 –

+0

這是行不通的'parseInt(「988,000 PTS」)將導致'988'而不是'988000',因爲'[...]如果parseInt遇到一個不是指定基數中的數字的字符,忽略它和所有後續字符,並返回解析到該點的整數值。[...]'[MDN:parseInt()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt) –

+0

@ t.niese - 好點 - 我已經更新了示例,使用string.replace函數先從字符串中去除非數字值,然後傳遞給parseInt,然後鏈接到MDN的w3schools –