[英]How to convert object properties string to integer in javascript
[英]Convert String Object to integer in Javascript
我有這個功能:
function validar(e) {
var xx = 1;
tecla = (document.all) ? e.keyCode : e.which; // 2
if (tecla == 8) return true; // 3
patron = /[A-Za-z\s]/; // 4
te = String.fromCharCode(tecla); // 5
var valorNumerico = Number(te);
if (te > 1 && te < 11) {
alert('Calificación:' + valorNumerico)
} else {
alert('La Calificación debe estar entre 2 y 10 - ' + valorNumerico)
}
}
目標將捕獲用戶的輸入並驗證范圍為2到10
但是,告訴我NaN
我嘗試了valorNumerico = parseInt(te);
告訴我NaN
我嘗試了valorNumerico = Integer.parseInt(te);
告訴我NaN
那么,如何轉換為整數? 謝謝,我在asp.net中使用了javascript中的函數
據我了解: https : //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
String.fromCharCode(
)會將一個數字(或一系列數字)轉換為它們對應的unicode值序列; 因此,無論傳遞給fromCharCode()
任何參數fromCharCode()
應實際返回可解析為整數的字符串。 換句話說,給定數字時, fromCharCode()
將返回非數字值。
我會像其他人建議的那樣使用console.log(tecla)
和console.log(e)
來查看您真正處理的值。
如果您確實在偵聽keyup或keydown事件,則應該由parseInt()
解析String.fromCharCode(e.keyCode)
parseInt()
。 例如,如果e.keycode
返回值0x31
,則應該能夠使用fromCharCode()
將其解析為字符串,並使用parseInt()
解析為整數。
但是,如果您不確定要處理的數據是什么,或者事情看起來很奇怪,日志記錄永遠是您的最佳選擇。
parseInt()
並不總是以10為底。這可能是其中的一部分。
但是我真的懷疑tecla
和te
沒有您認為的價值。 嘗試將console.log()
語句放在parseInt()
調用的上方,這樣您就可以了解該函數的真正含義。 這可能會讓您感到驚訝。
您尤其應該閱讀以下相關問題:
告訴您這一行:
tecla = (document.all) ? e.keyCode : e.which;
應該看起來像這樣:
tecla = (typeof e.which == "number") ? e.which : e.keyCode
但是,即使對於某些舊版瀏覽器和不可打印的字符,或者即使您使用的不是keypress
也可能無法滿足您的需求,例如keyup
或keydown
。
問題似乎出在以下幾行:
1) te = String.fromCharCode(tecla); // 5
2) var valorNumerico = Number(te);
查看您的代碼行1似乎暗示tecla是一個數字,它也應該像fromCharCode()函數期望一個數字並返回一個字符一樣; 假設tecla是65,所以line1將返回“ A”,該變量將分配給te變量。
現在在第2行中,您正在嘗試將字符轉換為數字,因為(例如,對於A)該字符不能轉換為數字,因此您會得到NaN。
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.