在Javascript中将String Object转换为整数

时间:2017-04-28 15:32:48

标签: javascript string integer

我有这个功能:

echo '<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="' . $row['balance'] . '" aria-valuemin="0" aria-valuemax="' . $row['nestEgg'] . '" style="width:' . $percent1 . '" />';

目标是捕获输入用户并将范围验证为2到10

但是,告诉我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) } }

我尝试了NaN

向我显示valorNumerico = parseInt(te);

我尝试了NaN

向我显示valorNumerico = Integer.parseInt(te);

那么,我如何转换为整数?谢谢我在javascript中使用了一个函数到asp.net

3 个答案:

答案 0 :(得分:0)

据我所知:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

String.fromCharCode()会将一个数字(或一系列数字)转换为相应的unicode值序列;所以,传递给fromCharCode()的任何参数都不应该实际返回一个可以解析为整数的字符串。换句话说,当给出一个数字时,fromCharCode()将返回一个不是数值的东西。

我会像其他人一样建议您console.log(tecla)console.log(e)看看您真正要处理的是什么价值。

如果你真的在听一个keyup或keydown事件,String.fromCharCode(e.keyCode)应该可以解析parseInt()。例如,如果e.keycode返回值0x31,您应该能够将其解析为包含fromCharCode()的字符串,并将其解析为parseInt()的整数。

但是,如果您不太确定自己要处理的数据,或者看起来有些奇怪,那么记录将始终是您最好的选择。

答案 1 :(得分:0)

parseInt()并不总是假设基数10.这可能是其中的一部分。

但我真的怀疑teclate 拥有您认为他们所做的值。尝试在console.log()电话的正上方添加parseInt()语句,以便了解该功能的实际情况。你可能会感到惊讶。

你尤其应该阅读这个相关的问题:

  

JavaScript KeyCode vs CharCode

这告诉你这一行:

tecla = (document.all) ? e.keyCode : e.which; 

或许看起来应该更像这样:

tecla  = (typeof e.which == "number") ? e.which : e.keyCode

但即便如此,对于某些旧浏览器和不可打印的字符,或者如果您使用keypress以外的其他内容,即使keyup或{ {1}}。

答案 2 :(得分:0)

问题似乎在于以下几点:

1) te = String.fromCharCode(tecla); // 5
2) var valorNumerico = Number(te);

看看你的代码line1似乎暗示tecla是一个数字,也应该是fromCharCode()函数需要一个数字并返回一个字符; 所以让我们说tecla是65,所以line1会返回'A',它将分配给te变量。

现在在第2行,你试图将字符转换为数字,因为(例如A)它不能转换为数字,你得到NaN。

希望它有所帮助!