簡體   English   中英

Javascript:無法將字符串轉換為數字

[英]Javascript: Trouble Converting String to Number

鑒於這種情況,我必須使用節點列表來獲取我需要使用的元素。 我能夠使用.textContent (或.nodeValue )來返回我需要的字符串,但是我找不到將該字符串轉換為任何類型的數字的方法。 我需要以數字形式提供它,以便我可以用它進行計算。 我嘗試過Number()parseInt()等等。所有返回NaN 我是JS的新手,所以希望這是一個容易解決的問題。

var siteActual = tdNodeListActual[36].textContent; // location of data
console.log(siteActual); // returns the value 1 as it should

var asd = Number(siteActual); // test variable to convert string to number
console.log(asd); // returns NaN

編輯:我檢查.length作為你建議的一個,它是2,所以那些說它可能是一個看不見的角色可能是正確的。 我正在嘗試對SharePoint頁面進行更改,這就是為什么我不熟悉標記的原因。 有關如何刪除除數字之外的所有建議的任何建議都會有所幫助。

使用parseInt(...)

樣品:

var siteActual = tdNodeListActual[36].textContent; // location of data
console.log(siteActual); // returns the value 1 as it should

var asd = Number(parseInt(siteActual)); // test variable to convert string to number
console.log(asd); // should return 1

如果內容真的只是1那么你的代碼應該按原樣運行(和parseInt )。 因此,您的內容中必須包含有效數字以外的內容。

有時可能存在您無法看到的內容,例如,在下面的示例中,第二個td包含一個不可見的“零寬度空格”字符。

 var tdNodeListActual = document.querySelectorAll("td"); var good = tdNodeListActual[0].textContent; var bad = tdNodeListActual[1].textContent; alert(good + "==" + Number(good) + ", but " + bad + "==" + Number(bad)) 
 <table><tr> <td>1</td> <td>&#8203;2</td> </tr></table> 

您可以刪除所有非數字字符(除.並且,使用正則表達式,如):

siteActual = siteActual.replace(/[^\d.,]/g, '');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM